[DRAFT] Software To-dos/Roadmap
SAR:
Cleaning up house:
Install SSD onto Jetson
Fix CI/CD on GitHub
Test jetson running (builds run fine, but try running the drivetrain launch file) →
Merge all unmerged PRs (Keyon can-ros-control, Orson arm control)
Main priorities:
CAN communications → #1 → Colin
Once this is done, do integration testing
send a message from ROS, over CAN to the nucleo, to spin the drivetrain wheels back and forth
Side priorities:
Xbox controller to ROS2
Cartesian arm controller
Autonomy (this needs to be after integration testing, potentially after cartesian arm controller)
Look into autonomy
What's being worked on right now:
Jetson spinup (getting ROS to run on the jetson, being done by Keyon right now)
go from emmc → SSD storage
look out for correct architecture
CAN/ROS2 hardware interface (being worked on by Colin right now)
Cartesian arm controller (Meshva + Andrew waiting on doc from Orson)
After:
Integration testing for drivetrain (testing our hardware interface with the drivetrain hardware by spinning up a velocity controller)
Science module ROS2 package
Creating full robot URDF and integrating robot URDF with ros2_control
Won’t have a complete robot until late fall/winter, why wait?
Use SWtoURDF plugin to convert current robot assembly to URDF
Add ros2_control tags
Add camera/sensor tags
Communications:
Setting up controller movement (aka use of xbox controller/joystick to control robot
Setting up direct camera feed from Jetson to base station)
Displaying robot URDF in Gazebo/RViz and sending joint position data from Jetson to base station to be simulated
Autonomy:
Get GNSS data/equip robot with GNSS sensor
… everything else required for the Autonomous Navigation Mission
Autonomy and arm can be worked on in parallel.
Management:
Fix CI/CD on GitHub
Merge all unmerged PRs (Keyon can-ros-control, Orson arm control)
Add more links/help to software training
Total robot:
Install SSD onto Jetson upon arrival
Test jetson running (builds run fine, but try running the drivetrain launch file)
Xbox controller integration
Communications:
Set up communication between base station and jetson via router (later task)
Ping electrical to get the router and networking working.
Set up camera feed between ROS on jetson and base station
Drivetrain:
Set up ROS2 CAN (colin)
Integration test for drivetrain
send a message from ROS, over CAN to the nucleo, to spin the drivetrain wheels back and forth
Science:
Build URDF for science module with ros2_control
Create launch file for science module
Autonomy:
Set up ZED2 Cameras such that they take the camera & depth data and build a point cloud; publish that point cloud data to Rviz/ROS
Make a test node that publishes that point cloud data.
Ensure that the drivetrain ZED transforms are correct – moving the ZED camera to the correct point in space on the URDF
Create behaviour tree for what the rover does when it receives stimuli from the environment (e.g: drive forward)
When doing this, look deeply into ROS2 Nav2 research such that it can be integrated smoothly into nav2
Look at the Autonomous Navigation Mission for what the robot needs to do specifically.
Create action servers for each action in the behavior tree
Fuse with ROS2 Nav2 library