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

ROS 2 Upgrade #151

Open
11 of 16 tasks
PeterMitrano opened this issue Jan 18, 2024 · 7 comments
Open
11 of 16 tasks

ROS 2 Upgrade #151

PeterMitrano opened this issue Jan 18, 2024 · 7 comments
Assignees

Comments

@PeterMitrano
Copy link
Contributor

PeterMitrano commented Jan 18, 2024

  • upgrade launch files to ROS 2 syntax
  • Get joint states for gripper links to show up correctly
  • upgrade robotiq_grippers_joystick_node.py
  • get listener.py and joy_to_xbox .py and other arm_utilities code needed by victor_hardware scripts upgraded to rclpy
  • Confirm that the left_arm/wrench axes are aligned correctly
  • Test cartesian motion commands
  • Kuka control computer time mismatch
  • Try out MoveIt Servo
    • Try out v2.9.0 which may improve the smoothness of servoing
      • Didn't work, move_group node segfaults with no information to debug
  • Upgrade and test manual_motion.py
  • Measure and document the latency of the system
    • what frequency is the LCM published at?
    • How much delay is there between when the LCM message is created in Java to when the LCM message is received in C++? What about to when the ROS message is published? What about to when a subscriber gets the message?
    • Same as above but for sending commands. How much delay until the command is actually executed?
  • fix build warnings in LCM
  • upgrade grasp_status_node.py deleted instead
@PeterMitrano
Copy link
Contributor Author

@Yating05 @zxhuang97

@PeterMitrano
Copy link
Contributor Author

PeterMitrano commented Feb 6, 2024

ros2 control conversion:

  • Basic planning and execution from RViz working
  • Get finger state to publish by adding them to the ros2 control XML
    • Have the hardware interface also fill out joint positions for fingers using the transmission to go from actuator state
    • Make the hw iface also subscribe to the LCM messages for the gripper

@PeterMitrano
Copy link
Contributor Author

From my testing of the cartesian pose commands, in cartesian impedance mode, the only parameter that affects the speed of the motion is cartesian_path_execution_params.max_velocity. Interestingly, the values of cartesian_path_execution_params.max_acceleration in victor_utils are orders of magnitude too high! This is partly why the motion is so jerky when the robot is given very small delta position commands. I wonder if this is true for joint commands too?

@PeterMitrano
Copy link
Contributor Author

PeterMitrano commented Feb 26, 2024

Bug fixes for victor_command_gui.py

  • sending commands after changing control mode seems to make sending commands stop work
  • doesn't open or run on Loki???
  • add a button to re-get the current control mode parameters

@PeterMitrano
Copy link
Contributor Author

PeterMitrano commented Feb 28, 2024

I tried implementing VR teleop for Victor using Cartesian control, but the downside was that the Cartesian controller wasn't very well behaved and would whip through singularities. Someone could go try to rewrite it use use incremental IK and JointImpedance instead. That's how the one Brad wrote worked.

Todo:

  • sync the code between armnova and loki

@PeterMitrano
Copy link
Contributor Author

@Yating05 is taking the approach of using ros2 control, instead of the ROS MotionCommand message, but keeping the SetControlMode service.

Todo:

  • Figure out which controllers need to be deactivated and add those to the request in side.cpp SetControlMode callback
  • Finish implementing the KukaCartesianController
  • Delete MotionCommand message from ROS (do NOT delete from LCM!!!!)
    • delete the build / install folder for victor_hardware_interfaces
  • update all the victor_python code to use the new new_controller_name field and to not send MotionCommand messages because they don’t exist anymore!!!!

@PeterMitrano
Copy link
Contributor Author

I'm going to try another approach where we create additional ROS controllers (same type, but with different ROS parameters) to handle the fact that some controller/control mode combinations are invalid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants