To get the seminar credit, student must:
$HOME
.
singularity shell /opt/ros ros
.
source /opt/ros/robolab/devel/setup.bash
.
export ROS_WORKSPACE=$HOME/ros_kinetic_ws && mkdir -p $ROS_WORKSPACE/src && cd $ROS_WORKSPACE && catkin init && catkin build
.
To use the turtlebots:
e210bot
.
ssh usermap_username@192.168.210.(20+turtlebot_number)
.
singularity instance start /opt/ros ros
.
tmux
.
singularity shell instance://ros
then source $ROS_WORKSPACE/devel/setup.bash
.
roscore
. roslaunch
itself would run roscore
if no ROS master is detected but this master will be killed when the roslaunch
command finishes (usually with Ctrl+C
) and nodes such as rqt or rviz would have to be closed as well. It is then better to run roscore
separately.
roslaunch robolab_bringup turtlebot2.launch camera:=false
.
singularity instance start /opt/ros ros
.
singularity shell instance://ros
then source $ROS_WORKSPACE/devel/setup.bash
.
roslaunch simulator_e130 simulator.launch
. To be on the safe side, it's better to launch the simulation server and possibly the GUI first (roslaunch simulator_e130 server.launch
, roslaunch simulator_e130 gui.launch
) and then the robots (roslaunch simulator_e130 robots.launch
). This avoid missing robots, especially with more than two robots.
robot_coordination/robot_node
can be used to drive the robot, it basically accepts a trajectory as input through services and drives the robot along the trajectory. Launch one robot_coordination/robot_node
for each robot: e.g. ROS_NAMESPACE=/robot1 rosrun robot_coordination robot_node __name:=controller
.
robot_coordination/example_robot_control.py
, and can be launched e.g. with rosrun robot_coordination example_robot_control.py _server_namespace:=/robot0
.
Back to the course page.