Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate functionality of arm into Snowflake #409

Open
ihsan314 opened this issue Jun 21, 2022 · 0 comments · May be fixed by #431
Open

Integrate functionality of arm into Snowflake #409

ihsan314 opened this issue Jun 21, 2022 · 0 comments · May be fixed by #431
Assignees
Labels
CIRC Moves Snowbots closer to having a working rover for the Canadian International Rover Challenge Critical Firmware Hardware

Comments

@ihsan314
Copy link
Collaborator

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:

@ihsan314 ihsan314 added Critical Hardware Firmware CIRC Moves Snowbots closer to having a working rover for the Canadian International Rover Challenge labels Jun 21, 2022
@ihsan314 ihsan314 linked a pull request Sep 26, 2022 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CIRC Moves Snowbots closer to having a working rover for the Canadian International Rover Challenge Critical Firmware Hardware
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants