This page lists my open source contributions made while at Team R3 of Ryerson University in Toronto, Canada and built for the University Rover Challenge (URC) 2017. We share our rover software architecture diagram and several ROS packages for the URC competition.
Our autonomous navigation video: https://www.youtube.com/watch?v=p_1nkSQS8HE
More video of rover: https://youtu.be/YEfgYmFqJqM
Robot Operating System (ROS): The Complete Reference (Volume 3), Studies in Computational Intelligence Released July 2, 2018.
Detailed instructions and tips are published in a book chapter.
Link to chapter: PDF, LATEX, or an older DOCX version.
Link to book on Amazon.
Full documentation in a book chapter: Book Chapter - University Rover Challenge Tutorials and Team Survey.pdf
Full source code for our rover: https://github.com/danielsnider/URC
Rover Diagram in Visio Format: Rover_Diagram.vsdx
ROS-Rover has five main systems: the drive system, the autonomous system, the global positioning system, the visual feedback system, and the odometry system.
1. zed-ros-wrapper http://wiki.ros.org/zed-ros-wrapper
2. follow_waypoints.py http://wiki.ros.org/follow_waypoints
3. rgbd_odometry http://wiki.ros.org/rtabmap_ros#rgbd_odometry
4. rtabmap http://wiki.ros.org/rtabmap_ros
21. gps_goal.py http://wiki.ros.org/gps_goal
5. ekf_localization http://docs.ros.org/kinetic/api/robot_localization/html/
6. rtimulib_ros https://github.com/romainreignier/rtimulib_ros
7. navsat_transform http://docs.ros.org/kinetic/api/robot_localization/html/
8. nmea_navsat_driver http://wiki.ros.org/nmea_navsat_driver
9. joy http://wiki.ros.org/joy
10. drive_teleop.py http://wiki.ros.org/simple_drive#drive_teleop
11. cmd_vel_mux.py http://wiki.ros.org/simple_drive#cmd_vel_mux
12. simple_drive.py http://wiki.ros.org/simple_drive#simple_drive-1
13. move_base http://wiki.ros.org/move_base
14. Cost Map costmap_2d http://wiki.ros.org/costmap_2d
15. Cost Map Obstacle Layer http://wiki.ros.org/costmap_2d/hydro/obstacles
16. Cost Map Static Layer http://wiki.ros.org/costmap_2d/hydro/staticmap
17. Global Planner Navfn http://wiki.ros.org/navfn
18. Local Planner base_local_planner http://wiki.ros.org/base_local_planner
19. RViz http://wiki.ros.org/rviz
20. rqt_image_view http://wiki.ros.org/rqt_image_view
22. MapViz http://wiki.ros.org/mapviz
23. usb_cam http://wiki.ros.org/usb_cam
A simple robot drive system for skid steering joystick teleoperation, control of a panning servo to look around the robot, and Arduino firmware.
Project homepage: http://wiki.ros.org/simple_drive
Simple 6-axis robot arm teleoperation software and Arduino firmware.
Project homepage: http://wiki.ros.org/simple_arm
A package that will buffer move_base
goals until instructed to navigate to all waypoints in sequence.
Project homepage: http://wiki.ros.org/follow_waypoints
Add an indication of scale and compass to live images.
Project homepage: http://wiki.ros.org/image_overlay_scale_and_compass
Create panoramas in ROS using image snapshots or multiple video streams.
Project homepage: http://wiki.ros.org/hugin_panorama
If robot loses its network connection it will stop motors or set a goal to navigate home autonomously.
Project homepage: http://wiki.ros.org/lost_comms_recovery
Set navigation goals in ROS frame coordinates using latitude and longitude.
Project homepage: http://wiki.ros.org/gps_goal
ROS robots are often controlled by many bash terminals and the startup sequence involves many roslaunch commands in different terminals. I demonstrate how you can use Tmux on your robot to codify your terminal layout into a powerful ROS administration system. The organized, repeatable tmux view can be shared in real-time by all of your team members for a consistent view of the robot's inner workings.
- The tmuxinator config used by Team R3 to start all the rover software components is here: https://github.com/teamr3/URC/blob/master/.tmuxinator.yml
- The tmuxinator config used by Team R3 to start all the base station control components is here: https://github.com/teamr3/URC/blob/master/devstuff/dan/.tmuxinator.yml
Proxy zoomable map tiles from Google Maps to ROS MapViz for use with outdoor robots. For easy setup of MapProxy in a docker container to proxy Google Maps satellite view into a WMTS tile service so that it can be viewed by ROS's MapViz Tile Map plugin. Support for offline maps after loading once, maps stay cached. For outdoor robotics and vehicles.
Project homepage: https://github.com/danielsnider/MapViz-Tile-Map-Google-Maps-Satellite