A single combined repository of all code needed to run the UT Campus Jackal
- ROS
- amrl_msgs
- Lua5.1
- glog
- gflags
- Eigen3
- Ceres-Solver
- jackal_msgs ros package
- Clone the repository and add it to the
ROS_PACKAGE_PATH
environment variable. Also, addut_jackal/graph_navigation
path to theROS_PACKAGE_PATH
environment variable. - Run
git submodule update --init --recursive
from withinut_jackal
folder. - Run
make [-j]
After a successful make
, the configuration for different repos (enml, graph_navigation, etc) can be changed in the config/
folder. Once done, simply run:
roslaunch ut_jackal autonomy.launch
It is recommended to run this in a screen. To do so, run
screen -S <name of screen, ex. 'autonomy'>
roslaunch ut_jackal autonomy.launch
<ctrl+A, then ctrl+D to leave the screen>
To resume the screen, run screen -r <screen name>
To run through a loop of waypoints, ensure the autonomy stack (previous section) is running.
If not using in an empty map, you must first localize the robot. If not already localized, set the current pose via robofleet or using the /set_pose
topic.
You will also need to set the robot in autonomous mode. To do so, press 'X' on the controller if it's not currently in autonomous mode.
Then run the waypoint loop script as follows:
cd ~/amrl/ut_jackal/scripts/
python3 waypoint_loop.py --stop_time <number of seconds to stop at each waypoint> --map <name of the waypoints list to run through>
The list of waypoints is in the waypoint_loop.py
script. You can add or modify entries in the waypoint list if you want a different set of waypoints. Note that the map names in this script may not match with the map names in amrl_maps
. The format of each waypoint is pos_x, pos_y, quaternion_z, quaternion_w
and these are expressed relative to the map that the localization is currently using for the robot.
If the robot gets stuck, you can joystick it out of being stuck and then hit 'X' to resume autonomous waypoint looping.
If you want to run through a triangle of points relative to the robot's current position, we've created a utility script that does so with an empty map. To run this, starting from the scripts directory, use:
./loop_from_curr_loc.sh
Note that because this is configured to run without a map, the waypoint locations may drift over time.
You may also want to run this in a screen (see above).