Comments (4)
It's a work in progress, and here is something I noticed when visualizing the padding/scale
original | scaled/padded (excluding mesh type) |
---|---|
I've extracted moveit_core::RobotModel
link model information to generate the padding as shown above. However, it seems that it only takes the first collision define by the link and ignores any other collision. Need more investigation on this.
from moveit.
Memo:
This is where the padd/scale parameters are loaded set.
The parameters are stored in the scene_
a planning_scene::PlanningScene
instance under cenv_
, a collision_detection::CollisionEnvPtr
variable. Accessing this will give you the link padd/scale.
Collision check with padd/scale parameter is executed when checkCollision
function is called (ros-planning ignores padd/scale self-collision but sbgisen don't)
moveit/moveit_core/planning_scene/src/planning_scene.cpp
Lines 487 to 498 in 3a9e63a
This will called the checkRobotCollision
and checkSelfCollision
function defined in moveit_core/collision_detection/include/collision_env.h
file. Here, it gets a little tricky since it is a virtual function; this means the function will override whatever class it inherits. In this case, MoveIt has several collision detection method, such as FCL and Bullet. By default, MoveIt uses the FCL.
Visualization part:
In general, we want to modify either the https://github.com/sbgisen/moveit/tree/noetic-devel/moveit_ros/visualization/motion_planning_rviz_plugin or https://github.com/sbgisen/moveit/tree/noetic-devel/moveit_ros/visualization/planning_scene_rviz_plugin to visualize the robot model on rviz.
from moveit.
Memo part2:
Since MoveIt uses FCL, the updatedPaddingOrScaling
function, which is called when the padd/scale parameter are configured, is referred here.
Looking at FCL's createCollisionGeometry
function, the individual link's collision are cast as geometric_shapes::Shape
with the scaling and padding parameters configured within. Depending on the type of collision shape, the geometric_shapes::Shape
updates the scaling and padding parameters accordingly.
moveit/moveit_core/collision_detection_fcl/src/collision_common.cpp
Lines 902 to 903 in 3a9e63a
This is also used in Bullet
moveit/moveit_core/collision_detection_bullet/src/collision_env_bullet.cpp
Lines 405 to 409 in 3a9e63a
Therefore, if we can extract the geometric_shapes::Shape
to some structure for Rviz (such as visualization_msgs or Rviz api) we can visualize how the padding/scaling parameters affects the robot model collision.
from moveit.
#24 due to trying to sync with the latest branch, it was requested to temporarily revert (#26).
Reopening this issue as a reminder that the padding visual is not enabled at the moment.
from moveit.
Related Issues (13)
- Add option to use padded robot for self-collisions HOT 2
- CPU usage of rviz increases when running for long periods HOT 5
- Imported target "Boost::system" includes non-existent path
- octomap_frame ignored when map_frame exist HOT 1
- planning scene object collide with octomap HOT 1
- self mesh filter ignores orientation
- dynamically change octomap detection range
- [ERROR] [/rviz]: a message of over a gigabyte was predicted in tcpros. that seems highly unlikely, so I'll assume protocol synchronization is lost. HOT 1
- filtered_cloud is incorrect HOT 3
- I want to make it an option whether to delete all scene objects from octomap or not HOT 1
- Enabling debug_info_ causes topics with different encodings to be published in duplicate each time
- Move group can't connect to rviz on gazebo HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from moveit.