[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:

  1. 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

    1. Make a test node that publishes that point cloud data.

  2. Ensure that the drivetrain ZED transforms are correct – moving the ZED camera to the correct point in space on the URDF

  3. Create behaviour tree for what the rover does when it receives stimuli from the environment (e.g: drive forward)

    1. When doing this, look deeply into ROS2 Nav2 research such that it can be integrated smoothly into nav2

    2. Look at the Autonomous Navigation Mission for what the robot needs to do specifically.

  4. Create action servers for each action in the behavior tree

  5. Fuse with ROS2 Nav2 library