ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

ninamwa's profile - activity

2022-09-06 05:43:53 -0500 received badge  Nice Question (source)
2022-01-07 06:50:43 -0500 received badge  Famous Question (source)
2021-06-03 03:17:20 -0500 received badge  Notable Question (source)
2021-06-03 03:17:20 -0500 received badge  Popular Question (source)
2021-05-26 15:44:32 -0500 marked best answer Map is not initialized, with Rviz and Gazebo simulation, ROS2

Hi. I have been following the Turtlebot3 tutorial with ROS2 Dashing (http://emanual.robotis.com/docs/en/pl...) which works fine for all the steps. Now, i want to try out simulation in gazebo and navigation2 with a simple robot i have built on my own. As a starter i have been using the turtlebot files, the only thing i have changed is the design of the robot (inside the model and urdf files). The sensors etc. is kept the same. I also use the map and world for turtlebot3. I want to perform the simulation part in the tutorial. First I run the command:

 ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

which correctly visualize the robot and world in Gazebo. Then I run

ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=$HOME/map.yaml

RviZ opens with the correct map, but a lot of errors occur both in Rviz and in the terminalwindow:

When I used the turtlebot model, this errors also occurred, but they where removed when I set the initial pose for the robot. Now, when I try to set the initial pose, the command line tells that amcl has received an initial pose and set it:

But the errors in rviz are still there and the command window keeps printing the same errors as before.

The error in Rviz are Global Status: Error, Fixed Frame:Frame [map] does not exist.

I assume it is the transform between the map and gazebo/odom(?) which is missing, but I tought it would be fine when I set the initial pose for the robot. Does anyone have any suggestions to what could be the problem?

2021-05-21 15:56:28 -0500 marked best answer Architecture of the Navigaton2 stack

Hi, I am working on a report in school where i am describing the navigation2 stack briefly, and i would like to add a picture of the high-level architecture. This picture would been perfect, except the fact that i am writing about ros2 and navigation2.

image description

I have not been able to find an updated picture of the architecture (does anyone know if it exist?), but i found this one: image descriptionon this page: https://github.com/ros-planning/navig... It also state that:

In addition, move_base itself has been split into multiple components:
 - nav2_bt_navigator (replaces move_base)
 - nav2_navfn_planner (replaces global_planner)
 - nav2_dwb_controller (replaces local_planner)

As i have not been able to find a picture, i was thinking to create my own, but i need to be sure about the changes before i do so. Is local planner (now: nav2_dwb_controller) and global planner (nav2_navfn_planner) now moved outside the square box (now: nav2_bt_navigator), and the box consists of only global costmap, local costmap and recovery behaviour? or is the architecture changed completely?

I am just briefly explaining the navigation stack and what information is required for this to work, so this is why i have not too much knowledge of how the different components work.

Thank you for any answers! :)

2020-11-21 10:32:42 -0500 received badge  Favorite Question (source)
2020-10-22 03:05:12 -0500 received badge  Famous Question (source)
2020-08-22 22:55:31 -0500 received badge  Famous Question (source)
2020-08-05 12:38:19 -0500 received badge  Famous Question (source)
2020-07-15 00:41:57 -0500 received badge  Notable Question (source)
2020-06-23 08:20:36 -0500 received badge  Famous Question (source)
2020-06-12 04:53:26 -0500 received badge  Famous Question (source)
2020-06-08 12:44:14 -0500 received badge  Popular Question (source)
2020-05-11 05:35:23 -0500 asked a question Cartographer: map->odom tf is unstable when using both scans and pointcloud as input

Cartographer: map->odom tf is unstable when using both scans and pointcloud as input Hi. I am using Cartographer/Car

2020-05-11 03:18:19 -0500 received badge  Famous Question (source)
2020-05-03 10:06:32 -0500 commented question Realsense D435 Camera Not Detected

Did you figure out how to solve this? Having the same issue!

2020-04-29 03:55:23 -0500 received badge  Notable Question (source)
2020-04-22 04:51:07 -0500 received badge  Notable Question (source)
2020-04-03 07:58:33 -0500 received badge  Notable Question (source)
2020-03-31 04:16:42 -0500 received badge  Notable Question (source)
2020-03-19 05:52:58 -0500 asked a question Moveit - create virtual point in the middle of gripper

Moveit - create virtual point in the middle of gripper Hi. I am using Moveit2 to plan for my manipulator. Attached to t

2020-03-18 07:10:21 -0500 received badge  Good Question (source)
2020-03-17 04:43:16 -0500 commented answer ROS2 Python: Add arguments to callback

Thank you, this worked exactly as I wanted! :-)

2020-03-17 04:42:43 -0500 marked best answer ROS2 Python: Add arguments to callback

Hi. I am using Python and ROS2 and I want to create two action clients: One for opening a gripper and one for closing it. The goal_response_callback is completely similar for both, and the result callback is very similar, it just changes what parameter to set to true/false. Instead of having two goal_callbacks and two result_callbacks, i was hoping to just give in an argument saying if the goal was to open or close the gripper, but i can't seem to find the correct way to use the callback together with an argument. I have tried to just give the argument as normal (self.goal_response_callback("open"), and as a partial function shown in the code below. Nothing seems to work.

Anyone who can tell me the best way to do this? Thanks!

 def send_close_gripper_goal(self):
    goal_msg = CloseGripper.Goal()
    self.closegripper_action_client.wait_for_server()
    self._send_goal_future = self.closegripper_action_client.send_goal_async(goal_msg)
    self._send_goal_future.add_done_callback(partial(self.goal_response_callback,"close"))

def goal_response_callback(self, future,type):
    goal_handle = future.result()
    if not goal_handle.accepted:
        self.get_logger().info('Goal rejected :(')
        return

    self.get_logger().info('Goal accepted :)')
    self._get_result_future = goal_handle.get_result_async()
    self._get_result_future.add_done_callback(self.get_result_callback(type))

def get_result_callback(self,future,type):
    result = future.result().result
    if type == "open":
        GripperOpen = result.success
        GripperClose = not result.success
    if type == "close":
        GripperClose = result.success
        GripperOpen = not result.success
    print(GripperClose)
    print(GripperOpen)
2020-03-16 13:23:26 -0500 received badge  Popular Question (source)
2020-03-16 08:05:40 -0500 asked a question ROS2 Python: Add arguments to callback

ROS2 Python: Add arguments to callback Hi. I am using Python and ROS2 and I want to create two action clients: One for o

2020-02-25 01:46:34 -0500 received badge  Popular Question (source)
2020-02-22 01:27:16 -0500 received badge  Popular Question (source)
2020-02-21 08:53:00 -0500 received badge  Popular Question (source)
2020-02-21 02:44:33 -0500 marked best answer Add camera data to obstacle layer or voxel layer in costmap?

Hi. I want to use navigation with multiple sensor inputs. I already have two SICK scanners on my robot, and to avoid the issue with only planar scanning, I want to add a RealSense camera as well.

I see that the obstacle/voxel layers in the costmaps in Navigation2 have support for this, and I am considering two cases:

  • Use depthimage_to_laserscan on the camera data and provide the obstacle layer with three laserscan inputs (and no voxel layer).
  • Use the pointcloud from the camera as input for the voxel layer, and two scan topics from the lasers for the obstacle layers.

Have anyone tested this and can tell me about how the different alternatives would affect the result, or maybe you can point me to some theory about this?

Thanks!

2020-02-21 02:44:29 -0500 commented answer Add camera data to obstacle layer or voxel layer in costmap?

Thank you, I will try that out! :-)

2020-02-21 02:38:00 -0500 commented question Transform data too old when converting from odom to map

Map to odom is between 16-20 Hz while odom to base footprint is 65-85 Hz. I updated my question with the view_frames ima

2020-02-21 02:37:45 -0500 commented question Transform data too old when converting from odom to map

Map to odom is between 16-20 Hz while odom to base footprint is 65-85 Hz. I updated my question with the view_frames ima

2020-02-21 02:36:15 -0500 edited question Transform data too old when converting from odom to map

Transform data too old when converting from odom to map Hi. I am running Navigation2 on Eloquent with my real robot. Thi

2020-02-20 02:18:36 -0500 asked a question Transform data too old when converting from odom to map

Transform data too old when converting from odom to map Hi. I am running Navigation2 on Eloquent with my real robot. Thi

2020-02-20 01:44:01 -0500 asked a question Add camera data to obstacle layer or voxel layer in costmap?

Add camera data to obstacle layer or voxel layer in costmap? Hi. I want to use navigation with multiple sensor inputs.

2020-02-17 01:29:43 -0500 commented answer Configuring the progress checker in Navigation2

Thank you very much! I do not think it will be necessary for me to change it during runtime, but I will let you know if

2020-02-17 01:27:37 -0500 marked best answer Configuring the progress checker in Navigation2

Hi. I am testing out how to dynamically change my speed parameters in Navigation2. It works good, but if I set the speed too low, the navigation fails because the controller server "fails to make progress".

In this documentation: https://navigation.ros.org/configurat... the parameter movement_time_allowance is mentioned. The description is:

Controls how much time the robot has time to show progress. If the robot fails to move more than required_movement_radius meters in this time, an error is thrown. For slow robots, this time should be extended. Reducing this time will cause the robot to recover more quickly if it is stuck, but too little time doesn’t give the robot enough time to manoeuver in dynamic environments.

I want to change this parameter but I can't seem to find the correct place to do it (without directly changing the code). When I look at the param list in the terminal it is not mentioned any place, and if I try to change it from the terminal, it says that the parameter is not declared.

The parameter is used in this code: https://github.com/ros-planning/navig...

Does anyone know how I could access and change this parameter? Thanks!

2020-02-13 03:46:01 -0500 asked a question Configuring the progress checker in Navigation2

Configuring the progress checker in Navigation2 Hi. I am testing out how to dynamically change my speed parameters in N

2020-02-10 04:21:25 -0500 received badge  Nice Question (source)