Capra-Takin is a ROS-based solution for managing and operating Club Capra's rescue robot.
- Ubuntu 18.04LTS
- ROS melodic
- git + GitHub
This section will help you get ready to work on the Takin project. It is supposed to give you the necessary information to understand ROS and how our project is built. There's also documentation on how to launch and use our project.
The ROS documentation can be found at : http://wiki.ros.org/
It is a requirement to understand the basics of ROS and Linux to be proficient in the project.
As an initiation task, we ask that you complete the series of tutorials offered by ROS : http://wiki.ros.org/ROS/Tutorials. It is generally advised to stop at the roswtf tutorial.
To build the project the first time, you need to execute the install.sh which will configure, compile and regenerate the necessary bindings to use ROS with our nodes. After that, you'll be able to use catkin_make and source your build manually.
Here are the steps to build our project :
mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/clubcapra/Takin takin
cd ..
./src/takin/install.shYou need to select the right setup file for your shell when sourcing.
source devel/setup.bashTo install dependencies, go to the top directory of your catkin workspace where the source code of the ROS packages you'd like to use are. Then run:
rosdep install --from-paths src --ignore-src -r -yThere are two options to launch a node.
- rosrun
- roslaunch
If you just want to launch the robot for a demo, log into the robot using ssh then:
source ~/Code/takin_ws/devel/setup.bash
roslaunch takin_bringup takin_base.launch &To debug a node the following options exits:
-
Checking the basics
Issue Command Checking if the master is reacheable roswtfChecking if node exists rosnode listChecking if topic exist rostopic listChecking if message is published rostopic echo /your_topic_hereChecking the frequency of a message publication rostopic hz /your_topic_here -
If a permission error happens:
Issue Command Check if the device is available on your computer. (Ex: takin_estopwon't run on anything else than a Jetson TX2)lsusborls /sys/class/gpioor specific to your hardwareCheck if you have the proper udev copied in your folder. ls /etc/udev/rules.d/
If you want to contribute to the project, you can fork it and then PR to add or modify code.
At this moment, we don't have a coding standard, but it is something we want to implement in the future. For new code, we recommend using the ROS CppStyleGuide.