Ask Your Question

gleb's profile - activity

2019-06-04 12:57:43 -0600 received badge  Favorite Question (source)
2019-05-14 09:01:36 -0600 received badge  Student (source)
2017-11-29 10:39:06 -0600 received badge  Famous Question (source)
2017-11-16 19:48:08 -0600 received badge  Famous Question (source)
2017-11-16 19:48:08 -0600 received badge  Notable Question (source)
2017-11-10 02:30:25 -0600 received badge  Popular Question (source)
2017-09-18 02:42:44 -0600 received badge  Notable Question (source)
2017-06-06 10:07:03 -0600 received badge  Famous Question (source)
2017-04-29 10:07:53 -0600 received badge  Famous Question (source)
2017-04-08 08:49:56 -0600 received badge  Notable Question (source)
2017-02-23 11:52:59 -0600 received badge  Famous Question (source)
2017-02-23 11:52:59 -0600 received badge  Notable Question (source)
2017-02-23 11:52:59 -0600 received badge  Popular Question (source)
2016-12-16 03:56:00 -0600 received badge  Notable Question (source)
2016-10-05 04:57:19 -0600 commented answer sending multiple goals to navigation stack

but I get this error : AttributeError: 'module' object has no attribute 'SimpleClientGoalState'! Do you have an idea how to implement it right?

2016-10-05 04:56:37 -0600 commented answer sending multiple goals to navigation stack

@alienmon thank you very much for your help, this code works for me! I want to integrate following line:

if self.client.get_state() == actionlib.SimpleClientGoalState.SUCCESS:
    return 'succeded'
else:
    return 'aborted'
2016-10-04 07:40:54 -0600 commented answer Using AMCL without wheel odometry (only laser + IMU)

Hi, I want to use amcl with odom from hector_mapping combined with imu_data, but I am not able to get it running. I get tf errors, since I am missing tf from map to odom and from odom to base_footprint. How can I feed hectors odom to robot_pose_ekf and make robot_pose_ekf work together with amcl?

2016-10-04 07:11:34 -0600 received badge  Organizer (source)
2016-09-28 20:58:57 -0600 received badge  Famous Question (source)
2016-09-28 09:10:27 -0600 asked a question how to use robot_pose_ekf together with amcl

Hello everyone,

I have a carlike robot simulated in gazebo with a lidar and an imu sensor. I want to combine the odom delivered by hector slam and imu data with robot_pose_ekf and use odom_combined for amcl. The following are my launch files:

AMCL:

<?xml version="1.0"?>
<launch>
<node pkg="amcl" type="amcl" name="amcl" output="screen">

  <!-- remap from="scan" to="hokuyo_laser_topic" / -->  
  <remap from="cmd_vel" to="/cmd_vel" />  
  <remap from="scan" to="/scan" />  

  <!-- Publish scans from best pose at a max of 10 Hz -->
  <param name="odom_model_type" value="diff-corrected"/>
  <param name="odom_alpha5" value="0.003"/>
  <param name="gui_publish_rate" value="10.0"/>
  <param name="laser_max_beams" value="30"/>
  <param name="min_particles" value="500"/>
  <param name="max_particles" value="5000"/>
  <param name="kld_err" value="0.05"/>
  <param name="kld_z" value="0.99"/>
  <param name="odom_alpha1" value="0.005"/>
  <param name="odom_alpha2" value="0.005"/>
  <!-- translation std dev, m -->
  <param name="odom_alpha3" value="0.010"/>
  <param name="odom_alpha4" value="0.005"/>
  <param name="laser_z_hit" value="0.5"/>
  <param name="laser_z_short" value="0.05"/>
  <param name="laser_z_max" value="0.05"/>
  <param name="laser_z_rand" value="0.5"/>
  <param name="laser_sigma_hit" value="0.2"/>
  <param name="laser_lambda_short" value="0.1"/>
  <param name="laser_lambda_short" value="0.1"/>
  <param name="laser_model_type" value="likelihood_field"/>
  <!-- <param name="laser_model_type" value="beam"/> -->
  <param name="laser_likelihood_max_dist" value="2.0"/>
  <param name="update_min_d" value="0.1"/>
  <param name="update_min_a" value="0.1"/>
  <param name="odom_frame_id" value="/odom_combined"/>
  <param name="base_frame_id" value="base_footprint"/>
  <param name="global_frame_id" value="map"/>
  <param name="resample_interval" value="1"/>
  <param name="transform_tolerance" value="0.1"/>
  <param name="recovery_alpha_slow" value="0.01"/>
  <param name="recovery_alpha_fast" value="1"/>
  <param name="initial_pose_x" value ="0"/>
  <param name="initial_pose_y" value ="0"/>
  <param name="initial_pose_a" value ="0"/>

</node>
</launch>

Hector_SLAM:

<?xml version="1.0"?>

<launch>

<!--node pkg="tf" type="static_transform_publisher" name="odom_to_base_link" args="0 0 0 0.0 0.0 0.0 /odom /base_link 50" /-->
<node name="hector_mapping" pkg="hector_mapping" type="hector_mapping" output="screen">
    <remap from="map" to="/mapcurrent" />
    <param name="map_frame" value="/mapcurrent" />
    <param name="base_frame" value="/base_footprint" />
    <param name="odom_frame" value="/odom" />
    <param name="pub_odometry" value="true" />
    <param name="use_tf_scan_transformation" value="true"/>
    <param name="use_tf_pose_start_estimate" value="false"/>
    <param name="pub_map_odom_transform" value="false" />

    <param name="map_resolution" value="0.025"/>
    <param name="map_size" value="2048"/>
    <param name="map_start_x" value="0.5"/>
    <param name="map_start_y" value="0.5" />
    <param name="map_multi_res_levels" value="2" />

    <param name="update_factor_free" value="0.4" />
    <param name="update_factor_occupied" value="0.9" />    
    <param name="map_update_distance_thresh" value="0.4" />
    <param name="map_update_angle_thresh" value="0.06" />
    <param name="laser_z_min_value" value = "-1.0" />
    <param name="laser_z_max_value" value = "1.0" />

    <param name="advertise_map_service" value="true" />

    <param name="scan_subscriber_queue_size" value="5"/>
    <param name="scan_topic" value="/scan"/>
    <param name="pub_map_scanmatch_transform" value="false" />
    <param name="tf_map_scanmatch_transform_frame_name" value="scanmatcher_frame" />
</node>

<node name="odomtransformer" pkg="rbcar_navigation" type="odomtransformer.py" output="screen">
    <param name="odom_input" value="/scanmatch_odom" />
    <param name="tf_output" value="/base_footprint" />
</node>

</launch>

Move_base:

    <?xml version="1.0"?>
<launch>

  <node name="map_server" pkg="map_server" type="map_server" args="$(find rbcar_navigation)/maps/hector.yaml"/>

  <!-- Run AMCL -->
  <include file="$(find rbcar_navigation)/launch/navigation_amcl/amcl.launch" />

  <!-- Run move_base -->
  <node pkg ...
(more)
2016-09-28 03:44:13 -0600 commented answer AMCL Localization, Drifts when turning

Do you mean a custom amcl-odom-model-type?

2016-09-28 03:44:13 -0600 received badge  Commentator
2016-09-27 13:05:57 -0600 commented answer localization is not working properly when robot is rotating

Thank you for your answer! My robot has a wheelbase of 2.8m, I want to simulate a real-case application, so I cannot change the wheelbase. Do you know if there is another way to improve odometry?

2016-09-27 13:05:35 -0600 answered a question localization is not working properly when robot is rotating

Thank you for your answer! My robot has a wheelbase of 2.8m, I want to simulate a real-case application, so I cannot change the wheelbase. Do you know if there is another way to improve odometry?

2016-09-27 11:54:28 -0600 commented answer localization is not working properly when robot is rotating

Hi Dharmateja Kadem, I am simulating a carlike robot with amcl localization and get the same problem. Could you plese describe how you managed to solve your problem. Thank you.

2016-09-26 08:16:20 -0600 commented answer AMCL Localization, Drifts when turning

Hi Akif, I have the same problem. I am using a carlike robot simulated in gazebo. As odom_model_type I am using "diff". But amcl has no parameter specifying the wheelbase. Do you have any idea how to correct that localization drift? Tank you.

2016-09-24 09:02:58 -0600 received badge  Popular Question (source)
2016-09-22 04:50:14 -0600 received badge  Notable Question (source)
2016-09-22 04:48:52 -0600 commented answer sending multiple goals to navigation stack

Thank you for your answer, I think I can make it work with SMACH, but I am new to programming and not sure about my code, could you please check my code and help me fix it? I am gonna update my question with my code.

2016-09-22 04:48:35 -0600 received badge  Editor (source)
2016-09-21 19:05:55 -0600 received badge  Popular Question (source)
2016-09-21 09:49:28 -0600 asked a question sending multiple goals to navigation stack

Hi everyone,

I want to send multiple goals to the navigation stack, that the robot should pass successively. I want to use a node similar to the node from this tutorial http://wiki.ros.org/navigation/Tutori... . How can I use this node to send multiple goals?

Thank you in advance.

Update:

That is the code I am trying to use, but I am not sure what should be in the execute_cb-part:

#!/usr/bin/env python

import roslib
import rospy
import smach
import smach_ros
import actionlib

from move_base_msgs.msg import MoveBaseAction, MoveBaseGoal

# Create a action server
class WPServer:
    def __init__(self,name):
        self._sas = SimpleActionServer(name,
                Waypoints,
                execute_cb=self.execute_cb)

    def execute_cb(self, msg):
        if msg.goal == 0:
            self._sas.set_succeeded()
        elif msg.goal == 1:
            self._sas.set_aborted()
        elif msg.goal == 2:
            self._sas.set_preempted()

def main():
    rospy.init_node('waypoint_machine')

    # Create a SMACH state machine
    sm = smach.StateMachine(outcomes=['succeeded','aborted','preempted'])

    # Open the container
    with sm:
        # Add states to the container

    wp1 = MoveBaseGoal()
    wp1.target_pose.header.frame_id = '/map'
    wp1.target_pose.pose.position.x = 13
    wp1.target_pose.pose.position.y = 0
    wp1.target_pose.pose.orientation.w = 1.0
    StateMachine.add('Waypoint1',
                      SimpleActionState('WPServer',
                                        Waypoints,
                                        goal=wp1),
                      transitions={'succeeded':'Waypoint2'})

    wp2 = MoveBaseGoal()
    wp2.target_pose.header.frame_id = '/map'
    wp2.target_pose.pose.position.x = 18
    wp2.target_pose.pose.position.y = 0
    wp2.target_pose.pose.orientation.z = 0.70710678118
    wp2.target_pose.pose.orientation.w = 0.70710678118
    StateMachine.add('Waypoint2',
                      SimpleActionState('WPServer',
                                        Waypoints,
                                        goal=wp2),
                      transitions={'succeeded':'Waypoint3'})

    # Execute SMACH plan
    outcome = sm.execute()

    rospy.signal_shutdown('All done.')


if __name__ == '__main__':
    main()
2016-09-09 03:45:48 -0600 received badge  Enthusiast
2016-09-06 09:16:37 -0600 commented answer Bad maps produced by gmapping in simulation with feature-poor environments

@zsaigol It's not entirely clear to me how this node is supposed to be used. Could you please explain?

2016-09-06 03:22:41 -0600 received badge  Popular Question (source)
2016-09-05 11:29:02 -0600 asked a question robot model is not moving in rviz, even though it is moving in gazebo

Hi everyone, I have a model of a car-like robot and try to create a map of my world in gazebo with hector mapping. Everything is working fine except that my robot model is not moving in rviz, when I move it in gazbeo via joystick. Thus I am not able to create a map. However, the robot is moving in rviz when I change the fixed frame to odom instead of map, but this doesn't help to create the map. https://postimg.org/image/o37ieh2ul/ that is how my frame tree looks like now. I need some help please.

2016-09-05 11:09:19 -0600 commented question model not moving in Rviz but is moving in Gazebo

Hey ngoldfarb, were you able to solve your problem? I'm facing the same problem at the moment... My robot is moving in gazebo, but it is staying at the initial pose in rviz, so that I am not able to create a map

2016-09-01 06:37:04 -0600 received badge  Popular Question (source)
2016-08-31 11:00:38 -0600 commented answer car-like robot navigation in gazebo

@forinkzan I am trying to control a car-like robot in gazebo as well. Could you please explain how you realized the teleoperation? And did you manage to navigate it?

2016-08-31 10:54:30 -0600 asked a question gazebo-controller for car-like robot

Hello everyone,

I can't seem to find a working controller for my car-like robot. This is the model I am using:

<?xml version="1.0"?>
<robot name="$(arg roboname)" xmlns:xacro="http://www.ros.org/wiki/xacro">

  <!-- Included URDF/XACRO Files -->
  <xacro:include filename="$(find chassis_description)/urdf/materials.urdf.xacro" />
  <xacro:include filename="$(find chassis_description)/urdf/chassis_wheels.urdf.xacro" />

  <!-- PROPERTY LIST -->
  <!--All units in m-kg-s-radians unit system -->
  <property name="M_PI" value="3.1415926535897931" />

  <!-- Main Body-base -->
  <property name="base_x_size" value="4.68" /> 
  <property name="base_y_size" value="1.27" /> 
  <property name="base_z_size" value="0.2" />
  <property name="base_mass" value="800" /> <!-- in kg-->

  <!--Inertial macros for the box and cylinder. Units are kg*m^2-->
  <macro name="box_inertia" params="m x y z">
    <inertia  ixx="${m*(y*y+z*z)/12}" ixy = "0" ixz = "0"
              iyy="${m*(x*x+z*z)/12}" iyz = "0"
              izz="${m*(x*x+z*z)/12}" /> 
  </macro>

  <!-- BASE-FOOTPRINT -->
  <!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin -->
  <link name="base_footprint">
    <inertial>
      <mass value="0.0001" />
      <origin xyz="0 0 0" />
      <inertia ixx="0.0001" ixy="0.0" ixz="0.0"
          iyy="0.0001" iyz="0.0" 
          izz="0.0001" />
    </inertial>
    <visual>
        <origin xyz="0 0 0" rpy="0 0 0" />
        <geometry>
            <box size="0.001 0.001 0.001" />
        </geometry>
    </visual>
  </link>

  <gazebo reference="base_footprint">
    <turnGravityOff>false</turnGravityOff>
  </gazebo>

  <joint name="base_footprint_joint" type="fixed">
  <origin xyz="0 0 ${wheel_radius - base_z_origin_to_wheel_origin}" rpy="0 0 0" />
    <parent link="base_footprint"/>
    <child link="base_link" />
  </joint>

  <!-- BASE-LINK -->
  <!--Actual body/chassis of the robot-->
  <link name="base_link">
    <inertial>
      <mass value="${base_mass}" />
      <origin xyz="0 0 0" />
      <!--The 3x3 rotational inertia matrix. -->
      <box_inertia  m="${base_mass}" x="${base_x_size}" y="${base_y_size}" z="${base_z_size}"/> 
    </inertial>    
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <box size="${base_x_size} ${base_y_size} ${base_z_size}"/>
      </geometry>
      <material name="Grey" />
    </visual>  
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0 " />
      <geometry>
        <box size="${base_x_size} ${base_y_size} ${base_z_size}"/>
      </geometry>
    </collision>     
  </link>
  <gazebo reference="base_link">
    <material>Gazebo/Grey</material>
    <turnGravityOff>false</turnGravityOff>
  </gazebo>

  <!-- WHEELs -->
  <wheel fb="front" lr="right" parent="front_right_wheel_steering_block" translateX="1" translateY="-1" flipY="-1" base_x_origin_to_wheel_origin="1.66"/>
  <wheel fb="front" lr="left" parent="front_left_wheel_steering_block" translateX="1" translateY="1" flipY="-1" base_x_origin_to_wheel_origin="1.66"/>
  <wheel fb="back" lr="right" parent="base_link" translateX="-1" translateY="-1" flipY="-1" base_x_origin_to_wheel_origin="1.14"/>
  <wheel fb="back" lr="left" parent="base_link" translateX="-1" translateY="1" flipY="-1" base_x_origin_to_wheel_origin="1.14"/>

    <joint name="front_right_wheel_joint" type="continuous">
      <parent link="front_right_wheel_steering_block"/>
      <child link="front_right_wheel"/>
      <origin xyz="0 0 0.125" rpy="1.570796 0 0" /> 
      <axis xyz="0 1 0" rpy="0 0 0" />
      <limit effort="100" velocity="100"/>
      <joint_properties damping="0.0" friction="0.0"/>
    </joint>

    <joint name="front_left_wheel_joint" type="continuous">
      <parent link="front_left_wheel_steering_block"/>
      <child link="front_left_wheel"/>
      <origin xyz="0 0 0.125" rpy="-1.570796 0 0" /> 
      <axis xyz="0 1 0" rpy="0 0 0" />
      <limit effort="100" velocity="100"/>
      <joint_properties damping="0.0" friction="0.0"/>
    </joint>

    <joint name="back_left_wheel_joint" type="continuous">
      <parent link="base_link"/>
      <child link="back_left_wheel"/>
      <origin ...
(more)
2016-08-31 07:25:37 -0600 asked a question Error: Unable to find odometry for model

Hi all,

I am trying to simulate a car-like robot in gazebo with following frame tree: https://postimg.org/image/m31wz0st1/ . When I run my launch file the following error occurs:

[ERROR] [1472202557.517496142, 40.405000000]: Unable to find odometry for model name /=-1

My launch file looks like follows:

<?xml version="1.0"?>
<launch>

      <arg name="paused" default="false"/>
      <arg name="use_sim_time" default="true"/>
      <arg name="gui" default="false"/>
      <arg name="headless" default="false"/>
      <arg name="debug" default="false"/>

<param name="use_sim_time" value="true"/>

  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(find chassis_gazebo)/worlds/chassis.world"/>
    <arg name="debug" value="$(arg debug)" />
    <arg name="gui" value="$(arg gui)" />
    <arg name="paused" value="$(arg paused)"/>
    <arg name="use_sim_time" value="$(arg use_sim_time)"/>
    <arg name="headless" value="$(arg headless)"/>
  </include>

<param name="robot_description" command="$(find xacro)/xacro.py '$(find chassis_description)/urdf/chassis.urdf.xacro'" />

  <!-- push robot_description to factory and spawn robot in gazebo -->
  <node name="chassis_spawn" pkg="gazebo_ros" type="spawn_model" output="screen" 
    args="-urdf -param robot_description -x 28 -y 4 -z 0 -Y 1.57 -model chassis"/>

  <!-- Load joint controller configurations from YAML file to parameter server -->
  <rosparam file="$(find chassis_control)/config/chassis_control.yaml" command="load"/>

  <!-- load the controllers -->
  <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen" args="joint1_velocity_controller joint2_velocity_controller front_left_steering_position_controller front_right_steering_position_controller  joint_state_controller"/>

  <!-- convert joint states to TF transforms for rviz, etc -->
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"
    respawn="false" output="screen">
  </node>

</launch>

Does anyone have any advice?

Thank you in advance!

2016-08-31 07:14:47 -0600 received badge  Popular Question (source)
2016-08-26 07:52:16 -0600 asked a question problem with hector mapping, map not building

Hi all,

I am trying to simulate a car-like robot in gazebo for hector mapping and amcl navigation. When I try to record the map, the map does not build up but moves along with the robot. For better understanding I have uploaded 2 images: https://postimg.org/image/c34oos2u9/ https://postimg.org/image/9n2vaxkrl/

Does anyone know what may be the reason for that problem?

Thank you in advance!

Update:

This is how my tf-tree looks like: https://postimg.org/image/3n5ekgkih/ . roswtf is giving me the following output:

WARNING The following node subscriptions are unconnected:
 * /hector_mapping:
   * /syscommand
 * /azcar_sim/obstacleStopperazcar_sim:
   * /azcar_sim/cmd_vel
 * /rviz_1472549092700612555:
   * /map_updates
   * /azcar_sim/lidar_points
 * /gazebo:
   * /gazebo/set_link_state
   * /gazebo/set_model_state

WARNING These nodes have died:
 * azcar_sim/urdf_spawnerazcar_sim-3
2016-08-23 09:27:03 -0600 asked a question problem with gazebo_urdf_spawner

Hey, I am trying to build an Ackermann model based on the CAT vehicle package. Since today I get the following error when I try to spawn the model via a launch file, even though it has worked before and I haven't changed anything in the files:

[INFO] [WallTime: 1471962070.626981] [0.000000] Controller Spawner: Waiting for service controller_manager/load_controller
Service call failed: transport error completing service call: unable to receive data from sender, check sender's logs for details
Segmentation fault (core dumped)
[gazebo-1] process has died [pid 16208, exit code 139, cmd /home/gleb/slam_simulation/src/gazebo_ros_pkgs/gazebo_ros/scripts/gzserver -e ode /home/gleb/slam_simulation/src/catvehicle-1.1.0pre/src/azcar_sim/worlds/skidpan.world __name:=gazebo __log:=/home/gleb/.ros/log/874b8914-6939-11e6-9099-90004e6484d5/gazebo-1.log].
log file: /home/gleb/.ros/log/874b8914-6939-11e6-9099-90004e6484d5/gazebo-1*.log
[azcar_sim/urdf_spawnerazcar_sim-2] process has finished cleanly
log file: /home/gleb/.ros/log/874b8914-6939-11e6-9099-90004e6484d5/azcar_sim-urdf_spawnerazcar_sim-2*.log
[WARN] [WallTime: 1471962100.880121] [0.000000] Controller Spawner couldn't find the expected controller_manager ROS interface.
[azcar_sim/controller_spawnerazcar_sim-3] process has finished cleanly
log file: /home/gleb/.ros/log/874b8914-6939-11e6-9099-90004e6484d5/azcar_sim-controller_spawnerazcar_sim-3*.log

I don't have any idea what could cause the problem and don't know how to resolve it. Could anyone give an advice by any chance?

Thank you in advance!

2016-08-16 05:39:00 -0600 commented answer gazebo ackermann car simulation

Hey Jim I'm working on a model of an ackermann steering vehicle and would like to look into your files to get an idea how to implement a controller for the ackermann steering. Unfortunately your package doesn't exist anymore. Would it be possible to upload your package again? Thanks in advance Gleb