# Beta Draconis Startup Procedure and Checklist ## Environment Setup ![](https://i.imgur.com/rhEi6TH.png) ![](https://i.imgur.com/n6RVZ6a.png) ![](https://i.imgur.com/sdZ3FyN.jpg) ![](https://i.imgur.com/EL8wt2q.jpg) ![](https://i.imgur.com/D6drz1d.jpg) ## Step 1A: Startup Vision60 Dog - On Shen Chen's Laptop - Open a new terminator window on the server desktop - Start up 7 terminal windows, all ssh'd into the Vision60: `ssh ghost@192.168.1.82` - Ensure T265 is disconnected, then reconnect it to the Vision60 - Start the following scripts in each terminal: - Start topic relay to server: `roslaunch autonomous_robots_2 topic_remap.launch` - Start sensors bringup: `roslaunch autonomous_robots_2 handheld_mapping_setup.launch` - Start compression of pointcloud to laserscan: `roslaunch autonomous_robots_2 velodyne_pointcloud_to_laser_scan.launch` - Start GMapping: `roslaunch autonomous_robots_2 vision60_1_2d_mapping.launch` - Start move_base: `roslaunch autonomous_robots_2 vision60_move_base_multiple_robots_rrt_vision60_1.launch` - Start local RRT node: ``` cd /home/ghost/rrt_ws source devel/setup.bash roslaunch rrt_exploration rrt.launch ``` - Start network checker: `sudo ./network_checker.sh` ### Troubleshooting #### Broken TF Tree on Server - Restart the entire stack from the top (excluding network checker) #### XBox Remote not Connecting (Flashing XBox button) - Restart linux xbox driver: `sudo systemctl restart xow` #### Remote Connected but Unresponsive - ssh into Vision60 internal computer from Vision60 NUC: `ssh ghost@192.168.168.105` - Restart remote-switch service: `sudo systemctl restart remote-switch.service` - Restart NUC ROSMaster: `sudo systemctl restart roscore.service` - Restart Remote Node and Multimaster: `sudo systemctl restart ghost-nuc.service` ## Step 1B: Startup Jackal - Server Desktop - Open a new terminator window on the server desktop - ssh into jackal using `ssh jackal-XX` - type `kill_jackal` to kill any remaining ROS nodes on the Jackal - type `relaunch` to bring up the ROS nodes on the Jackal, it will say `waitng for roscore to be launched`, just ignore for now as this will be addressed in the next step - Open a new sub window and ssh into the Jackal's NUC using `ssh NUC-XX` - type `bringup_multimaster` to bring up multimaster. This also brings up the roscore for the Jackal's interior computer - Open a new sub window and ssh into the Jackal's NUC using `ssh NUC-XX` - startup the network checker script by typing `bringup_network_checker`. The RSS should be around -25 to -45 normally at the starting point - Open a new sub window and ssh into the Jackal's NUC using `ssh NUC-XX` - type `bringup_gmapping` to bring up the gmapping node - Open a new sub window and ssh into the Jackal's NUC using `ssh NUC-XX` - type `bringup_move_base` to bring up the move base node ## Step 2A: Startup 2D Map Merger - Server Desktop - Open a new terminator window on the server desktop - type `bringup_multimaster` to bring up multimaster for the server - Open a new sub window on the current terminator instance - type `bringup_gmap_merging` to bring up the 2D map merger node as well as the rViz window - Check for the following items: - the laser scans for the Vision60 Dog and Jackal should be more or less aligned with each other - the merged map should be more or less aligned with the local occupancy maps of the Vision60 Dog and Jackal - check the TF tree - if there are issues with the TF frames being disjointed, see Section T.1 for possible solutions ## Step 2B: Startup Rosbridge - Server Desktop - Open a new terminator window on the server desktop - Launch the package to convert the required TFs to odometry data for hololens by typing `roslaunch odomfromTF hololens_odom_pub.launch` - Open a new sub window and type `bringup_rosbridge` - Check for the following items: - the topics ## Step 3: Startup UWB - On Zhiqiang’s Laptop - Open a new terminator window and ssh into Human using `ssh nv-p@XX ` - Type `./multimaster.sh` to bring up multimaster for the server - Open a new sub window and ssh into Human using `ssh nv-p@XX` - Startup the network checker script by typing `sudo ./network_checker.sh`. The RSS should be around -25 to -45 - Open a new sub window and ssh into Human using `ssh nv-p@XX` - Type `cd uwb_ranging` to get into the UWB folder and then `source devel/setup.bash` - Launch `roslaunch nlink_parser linktrack.launch` - To check if it works properly, open a new sub window and ssh into Human using `ssh nv-p@XX` - Type `cd uwb_ranging` to get into the UWB folder and then `source devel/setup.bash` - Type `rostopic hz /human_uwb`. The frequency should be around 100 Hz - Open a new sub window and ssh into Dog using `ssh ghost@XX` - Type `cd uwb_nooploop` to get into the UWB folder and then `source devel/setup.bash` - Launch `roslaunch nlink_parser linktrack_all.launch` - To check if it works properly, open a new sub window and ssh into Dog using `ssh ghost@XX` - Type `cd uwb_nooploop `to get into the UWB folder and then `source devel/setup.bash` - Type `rostopic hz /ghost_uwb`. The frequency should be around 200 Hz - Open a new sub window and ssh into Jackal using `ssh ycuser@XX` - Type `cd uwb_nooploop` to get into the UWB folder and then `source devel/setup.bash` - Type `roslaunch nlink_parser linktrack.launch` - To check if it works properly, open a new sub window and ssh into Jackal using `ssh ycuser@XX` - Type `cd uwb_nooploop `to get into the UWB folder and then `source devel/setup.bash` - Type `rostopic hz /jackel_uwb`. The frequency should be around 100 Hz - To start the UWB localization, open a new terminator window and ssh into Human using `ssh nv-p@XX ` - After the server has received the `holoOdom`, launch `roslaunch collaborative_slam_online cslam_t265.launch` to start the localization ## Step XX: Start RRT Exploration - On Server Desktop - Open a new terminator window or open a new sub window on an existing Terminator instance - Start RRT exploration by typing `roslaunch rrt_exploration duo_jackal_exploration.launch` - If you want the RRT exploration to start automatically or be manually started, perform the following parameter change - Open the `boundary.py` script in `/catkin_ws/src/global-robot-rrt/rrt_exploraiton/scripts` - Change the `startExploration` param to "False" if a manual start is desired. Else, change it to "True" ## Issues and Solutions ### T.1: Vision60 t265_link frame is disjointed from the TF Tree Description: Possible Causes: Solution: Restart sensor launch file for dog on Shen's laptop ### T.2: Many missing TF frames even though all robot/server nodes are running fine Description: Possible Causes: - Unknown nodes publishing to the `/tf` or `/tf_static` topic Solution: Shutdown all nodes on the server and robots. Power off the Vision60 dog and Jackal to reset the NUCs and internal computers. Turn on the robots and restart nodes on the server and robots ### T.3: TF Extrapolation into past/future due to robot time sync Description: Possible Causes: - Time desync between server and individual robots, leading to TF message timestamp not conforming to what's expected on the server side Solution: Force time resync to server on **each robot** ``` sudo systemctl stop ntp.service sudo ntpd -q sudo systemctl enable --now ntp.service ``` Retart robot ROS stack after time resync.