The goal of this project is to develop preseason software technologies based on ROS. This project will explorer development paths and verify new technologies before more permanent hardware development. Key areas of testing are cameras, vector drive, controllers, and PID algortihms. Additionally new workflows/integration tactics are to be tested and documented (Travis CI, Docker, node documentation, doxygen). This project will expire at the beginning of the 2018-2019 robotics season.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on the main ROV system (Master).
FOLLOW:
Initial SETUP:
cd ~/Desktop
git clone https://github.com/Michael-Equi/ROV_Test_Bench.git
git submodule update --init
cd ROV_Test_Bench/scripts
./GitSetup.sh
./setup.sh
- Try to install all ros depednencies (joy, rosserial, etc) at once using
rosdep install --from-paths src --ignore-src -r -y
in your ros_workspace sudo apt-get install ros-kinetic-joy
- (only on rpi w/ ubuntu Mate)
sudo apt-get install samba
sudo apt-get install python-smbus
sudo apt-get install doxygen
sudo apt-get install ros-kinetic-rosdoc-lite
sudo apt-get install ros-kinetic-rosserial-arduino
sudo apt-get install ros-kinetic-rosserial
- Check individual package setup documentation
cd ~/Desktop/ROV_Test_Bench/ros_workspace
catkin_make
- Check for errors
- Check prerequisites
Always run IDE's from terminal if on Ubuntu (just type the name of the IDE in terminal and click enter ex. clion)
What things you should to install to develop and run software and how to install them
Code Blocks IDE on rpi ubuntu mate
sudo apt-get install codeblocks
On the RPI turn on the CSI, SPI, I2C, and UART interfaces using sudo raspi-config
Setup the I2C interface on Ubutnu Mate
cd /boot/config.txt
- uncomment
dtparam=i2c_arm=off
and change todtparam=i2c_arm=on
- uncomment
dtparam=i2c_arm_baudrate=100000
and change todtparam=i2c_arm_baudrate=400000
- restart pi
Setup the ros_lib file for arduino serial
- See sketchbook README.md documentation
RPI Camera node setup
- See raspicam_node README.md documentation
What things you need to do so that the ROS network operates properly
On ubuntu 16.04 go to Network Connections app and add a new ethernet connection (name the connection ROVEthernetConnection
)
- On the topside computer have a static (manual) IP of
192.168.1.100
, netmask24
, Gateway92.168.1.1
, DNS server27.0.1.1, 8.8.8.8, 192.168.1.1
- On the bottomside computer have a static (manual) IP of
192.168.1.111
, netmask24
, Gateway192.168.1.1
, DNS server127.0.1.1, 8.8.8.8, 192.168.1.1
- Run the setupROSNetwork.sh script in the scripts folder
Once the network connection has been verified (on bottomside ping master
/ on topside ping bottomside
)
- Run
sshSetup.sh
in the scripts folder - Do not add any paraphrases
- on bottomside
ssh master
/ on topsidessh bottomside
- Make sure both work without entering a password
- IF you recieve
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host bottomside port 22: Connection refused
go to the opposite machine from the one you recieved it on and run the following:sudo rm /etc/ssh/sshd_config
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
./sshSetup.sh
Other usefull links for common problems:
- https://superuser.com/questions/421004/how-to-fix-warning-about-ecdsa-host-key
- https://askubuntu.com/questions/762541/ubuntu-16-04-ssh-sign-and-send-pubkey-signing-failed-agent-refused-operation
- https://answers.ros.org/question/41446/a-is-not-in-your-ssh-known_hosts-file/
A step by step series of examples that tell you how to get a development env running
On your Raspberry Pi 3 B make sure you are running ubuntu mate 16.04 (image here https://drive.google.com/open?id=1497jupJ2dBQqy_o_x5JBPTjY3lto7-rI)
- cat /etc/os-release
Explain how to run the automated tests for this system (travis CI)
Explain what these tests test and why
Give an example
Explain what these tests test and why (coveralls)
Give an example
Add additional notes about how to deploy this on a live system (docker)
- Dropwizard - The web framework used
- Maven - Dependency Management
- ROME - Used to generate RSS Feeds
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Michael Equi - Initial work
See also the list of contributors who participated in this project.
- README Tempalte source https://gist.github.com/PurpleBooth/109311bb0361f32d87a2
- Inspiration
- etc