Skip to content

Integrate functionality of arm into Snowflake #409

@ihsan314

Description

@ihsan314

Currently, when using the Nintendo Switch Pro Controller to control the rover, there are two modes of control: one mode being the wheels, and the other being the arm. One can switch between the two modes by pressing the home button on the controller.

  • The arm mode is incomplete.
    • To complete the arm mode, we first need the procontroller_snowbots package to be able to create a MoveIt move given the controller inputs.
    • We then need to integrate the MoveIt inverse kinematics solver into our repo.
    • Then on the NUC, we need a node that will subscribe to the output of the kinematics solver and turn that into commands for the Teensy microcontroller.
  • We need to add a third mode for drilling, i.e. a mode exclusively used for soil sampling.
    • The procontroller_snowbots package should be augmented to contain this new mode. Within the mode, based on the controller input, the appropriate strings for controlling the end effector should be generated and published to a topic.
    • A node running on the NUC should subscribe to the topic containing the above strings, and send the strings over a serial connection to the Teensy microcontrollers on the arm. We should be careful to ensure that the NUC does not simultaneously attempt to tell the arm to drill and execute a MoveIt move, but hopefully that shouldn't be a huge problem.

In terms of serial communication within a ROS node, as long as the linux user running the node is in the dialout group, something like rosserial_arduino or ros-teensy can be used.

Examples of serial communication within our repo:

Metadata

Metadata

Labels

CIRCMoves Snowbots closer to having a working rover for the Canadian International Rover ChallengeCriticalFirmwareHardware

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions