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.sh
You need to select the right setup file for your shell when sourcing.
source devel/setup.bash
To 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 -y
There 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 roswtf
Checking if node exists rosnode list
Checking if topic exist rostopic list
Checking if message is published rostopic echo /your_topic_here
Checking 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_estop
won't run on anything else than a Jetson TX2)lsusb
orls /sys/class/gpio
or 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.