cupoch | Robotics with GPU | Robotics library
kandi X-RAY | cupoch Summary
kandi X-RAY | cupoch Summary
Robotics with GPU computing
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of cupoch
cupoch Key Features
cupoch Examples and Code Snippets
Community Discussions
Trending Discussions on cupoch
QUESTION
I have limited experience in drake and currently trying to learn and implement some simple algorithms. The code I have is based on an example from the Underactuated Robotics course by R. Tedrake. The code is a slightly modified version of this example here, where the goal is to design a Lyapanuv Control Function for the unicycle robot model.
To simulate the robot model, an instance of SymbolicVectorSystem from drake is used.
As I understand this is just a building block for the "prototyping" and designing a suitable controller, is this correct?, is SymbolicVectorSystem still needed if there is a real robot?.
Now that I am happy with the controller, I would like to deploy this controller to a ROS2 robot. For that, I have written a simple script that subscribes to the current robot states from the localization system that I have. I am not really sure how to proceed from here, I think I need to connect the received robot state messages to the input of the controller, then publish the output of the controller back to the robot. The problem is I couldn't find any examples that suit this use case.
An approach I think of, could be that I create another class that inherits from VectorSystem, and this class wraps the ros stuff to subscribe publish ROS messages. In overridden DoCalcVectorOutput function of my wrapper class, I assign/retrieve the I/O and publish retrieved control commands. Finally, I connect the I/O of controller and wrapper classes with a DiagramBuilder
I am not sure if this will work, or if this is will be the recommended approach, I will appreciate your help.
Here is what the current code looks like;
...ANSWER
Answered 2022-Apr-03 at 16:02The code is a slightly modified version of this example here [...]
Unfortunately, this is not accessible to me (I'm not sure if this is your drive, or if the transition to DeepNote changed things). Can you post a link directly to the course notes? e.g. http://underactuated.csail.mit.edu/acrobot.html#cart_pole
As I understand this is just a building block for the "prototyping" and designing a suitable controller, is this correct?, is SymbolicVectorSystem still needed if there is a real robot?.
The choice is ultimately up to you and your application. SymbolicVectorSystem
may express what you need initially, but your needs may extend beyond what it can (easily) express.
Now that I am happy with the controller, I would like to deploy this controller to a ROS2 robot. [...]
There are a few examples of this using the Systems Framework, some in Drake proper, others in downstream projects, but understandably it may be hard to locate them.
Some examples in Drake itself, though using LCM, not ROS2, though:
- https://github.com/RobotLocomotion/drake/tree/v1.1.0/examples/manipulation_station - most notably, see
manipulation_station_hardware_interface.cc
- https://github.com/RobotLocomotion/drake/tree/v1.1.0/examples/kuka_iiwa_arm
Some examples in downstream projects; also primarily using LCM:
- From DAIR Lab
- From Dexai
- https://github.com/DexaiRobotics/drake-franka-driver/tree/cf3b20ef - this is moreso the "lower level" driver, but with very advanced features for robot arm control
As a small side note, some of us at TRI, w/ help from OpenRobotics, are (slowly) developing some ROS2 interfaces for Drake; you can see some of the progress here: https://github.com/RobotLocomotion/drake-ros/tree/develop
Some caveats:
- This is very experimental and has not yet been vetted (to any extent) on our side.
- Our primary customer is ourselves in this case, so it may not fit your use case well at this point in time.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install cupoch
You can also install cupoch using pip on Jetson Nano. Please set up Jetson using jetpack and install some packages with apt. Or you can compile it from source. Update your version of cmake if necessary.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page