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

Embedded Fixes for Speeding up Control Loop #908

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open

Embedded Fixes for Speeding up Control Loop #908

wants to merge 13 commits into from

Conversation

lkunelk
Copy link
Contributor

@lkunelk lkunelk commented Jan 25, 2025

  • Sync Write/Read loop speeds up loop 120 to 250Hz

  • 1Mbaud to 2Mbaud change

    • chain 5/6 time out, read back stops (data stops coming back on rviz), motors still moving in "wave" test
  • position read doesn't need to be that fast, 100Hz, 200Hz good?

  • IMU at least 100Hz, 200Hz good

  • Only the minimal change is included in this PR the commits are kept minimal

  • Code is readable and documented in the code

  • Minimal tests have been added

manx52 added 13 commits December 4, 2024 17:53
…bots and reallife but needs more tuning. added a soccerball to pybullet world. added camera link to assembly placo urdf. minor edit to dae script. made the calculate_ball_from_bounding_boxes arg better arranged. disable cover horizon for now. added a new set of test that run object detection on pybullet camera images. Added both methods for object localization. starting to fill out strategy.
…d up pybullet. properly enable head movement. tuned pid for nav on the new robot. created a new test that has nav without it owning the loops so we can add other operations.
…ter handeling of the motors based on str or int inputs, dont know if i fully like it. fixed camera image from pybullet, had to use the motors for rpy of the camera because the angles get weird. added a global and local ball ground truth. modified everywhere that interacted with motorcontrol. Got a ros version to work. swapped out pybullet setup with world and bez that control uses. no more duplicates. finished unit test for going to ball location based on yolov5.
… on the real robot will be renamed to be in line with everything else. added some quality of life improvements from js_strat for enabling the tracking ball functionality. tuned ball tracking with head movements. Some merging with js_strat and akp_object. Fixed the camera fov settings to align with the actual spec of the camera, this helps the projection. To firmware interface,I Added a lock and got rid of the thread for the main loop so I can have more fine control over the loop frequency. a new test in ros walk where its a ros version of some placo test, but before we have camera as a node. Tuned the height and orientation of the camera, due to the xacro being wrong. Added a sync read function in the firmware, but im not sure about it, certain ports are stalling and I think it might be too a buffer overflow due to the frequency of messages, probably will go back, but it works okish for now. The robot can now trakc the ball with the camera.
…p by double, going from 120hz to 250hz for the imu and joint states. Experimented with 2mbs baud rate but was getting a lot more timedout errors. Added back non sync read, only 1 chain times out, still dont know how. Added a ball pixel so we can use a PID for the head to track the ball, added some checking so we dont work on init or stale data. added some logic in nav ros so we have 3 modes, walk with a velocity, walk to the ball, walk in place. Tuned and pitch and role stabilization, needs some work for starting a walk, maybe more on placo side. It works in real life, it will detect the ball and walk towards it, we still need a sweep for the head and better kicking algorithim but the fundamentals work. Also added more lock nuts to the leg so it needs less maintence over time
…lking pid, tuned the trajectory and ready for video
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

Successfully merging this pull request may close these issues.

2 participants