Pose Estimation and using it with Navigation Stack in ROS

Hi Construct Community, @marco.nc.arruda @bayodesegun @duckfrost2 @albertoezquerro @rtellez

I am working on a project where I have to estimate the Pose of an object (specifically dustbin) in real time and provide necessary commands to move_base so that I can orient my robot according to it . The CAD model of the object is available to me. I need help from anybody that can kindly guide me on how I can implement this. I urgently need your help and I hope the community at Construct who have contributed to my learning can also guide me on this.

I tried find_2d_object, was not convinced. Please guide me
Regards,
Abhi

Hi @Abhijit03 ,
I am assuming that you want to get the location of a dustin model from Gazebo. If this is the case, the below mentioned steps should help.

Use the service provided by Gazebo to get the location of a model in Gazebo

rosservice call /gazebo/get_model_state "model_name: 'turtlebot3_burger'"
rosservice call /gazebo/get_model_state "model_name: 'Replace_with_your_models_name'"

Now, say you dont know know exactly the name of the model , because it could be Dustbin or Dust_bin or Dustbun2 etc. So inorder to find the actual name of the model, we use a service provided by gazebo

rosservice call /gazebo/get_world_properties "{}"

This gives the result, which includes the names of the models:

sim_time: 366.918
model_names:
  - ground_plane
  - ring_road_v2
  - working_wall
  - working_wall_0
  - working_wall_1
  - working_wall_2
  - triangular_prism_stop1
  - triangular_prism_direccion_obligada1
  - triangular_prism_direccion_obligada2
  - triangular_prism_stop2
  - triangular_prism_pedestrian0
  - triangular_prism_pedestrian1
  - overlord_camera
  - turtlebot3_burger
rendering_enabled: True
success: True
status_message: "GetWorldProperties: got properties"

If this was not the solution you were looking for, you can reply here and we can work from there on.
Best,
-Joseph

Hi @Joseph1001 ,

Really appreciate your reply , I am not working with the gazebo simulation of the environment rather working with real environment and what I want to do is estimate the pose (position and orientation) of the Dustbin placed in the scene using RGB-D camera and feed this pose to the navigation stack as the goal so that the robot can orient/position itself infront of it. The detection of the Dustbin has been already implemented using YOLO

Just to make it more clear , there is this video (Robot Mapping using Laser and Kinect-like Sensor - YouTube) which I found on the the internet that uses find-object-2d package which is exactly what I am trying to do just with a small addition that the robot use the pose to position itself, much like a robot trying to dock for charging but without the use of aruco markers or qr-code.

I tried to work with the (find_object_2d - ROS Wiki) package which exactly fits my requirements but I find it hard to fine tune the parameters and the detector doesn’t updates the detection and pose estimation as I move the camera around the object and I tried to find more information on how to tune the parameters on the GUI but cant find much help (Find-Object).

I would really appreciate any help. Thanks in advance.

Regards,
Abhi

Hi @Abhijit03 ,I am not to figure it out at the moment. Have you tried the 2 courses from Construct under the title perception?
image
If you haven’t, i highly suggest you do since it has content similar to what you are expecting for your project.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.