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

Kourosh's profile - activity

2020-06-22 04:00:56 -0500 received badge  Taxonomist
2020-03-19 10:45:16 -0500 received badge  Nice Question (source)
2015-05-21 09:03:37 -0500 received badge  Famous Question (source)
2014-07-16 15:59:17 -0500 received badge  Famous Question (source)
2014-04-02 04:21:26 -0500 received badge  Notable Question (source)
2014-03-22 02:43:55 -0500 received badge  Notable Question (source)
2014-03-22 01:41:04 -0500 commented answer URDF and frames of reference

Thank you very much. Everything is now much simpler because of your suggestion.

2014-03-22 01:40:05 -0500 received badge  Scholar (source)
2014-03-15 08:34:48 -0500 received badge  Popular Question (source)
2014-03-14 21:10:02 -0500 received badge  Student (source)
2014-03-14 09:44:15 -0500 asked a question URDF and frames of reference

Hi everyone.

I sincerely apologize if my question sounds stupid or has been answered before (I searched the forum and have read the tutorials but didn't find my answer). I'm currently building a URDF file for our robot using xacro. What I've noticed is that the origin of the frame of reference of every link is in the center of that link. For example when modeling hands, the tf will point to the center of the hand. I wanted to change this so tf frames will represent joints of hands and other parts of the robot, and not the middle of link. How is that possible to do?

Btw the current robot model is:

<?xml version="1.0"?>
<robot xmlns:xacro="----KARMA INSUFFICIENT" name="my_robot">
<!-- base cylinder properties -->
<xacro:property name="cyl_radius"                           value=".5"/>
<xacro:property name="cyl_height"                           value=".3"/>
<xacro:property name="cyl_buttom"                           value=".2"/> <!-- NOTE: not used currently -->
<!-- wheel properties -->
<xacro:property name="wheel_height"                         value=".2"/>
<xacro:property name="wheel_dist_to_center"                 value=".2"/>
<!-- laserscanner properties -->
<xacro:property name="laserscanner_dist_to_center"          value=".2"/>
<xacro:property name="laserscanner_height"                  value=".2"/>
<!-- body properties -->
<xacro:property name="body_dist_to_center"                  value=".35"/>
<xacro:property name="body_height"                          value="1.5"/>
<xacro:property name="body_width"                           value="0.07"/>
<!-- shoulder cylinder properties -->
<xacro:property name="shoulder_to_body_distance_x"          value=".15"/>
<xacro:property name="shoulder_rec_size"                    value=".07"/>
<xacro:property name="shoulder_length"                      value=".5"/>
<xacro:property name="shoulder_min_height"                  value=".8"/>
<xacro:property name="shoulder_max_height"                  value=".2"/>
<xacro:property name="max_shoulder_leveler_velocity"        value=".2"/>
<xacro:property name="max_shoulder_leveler_effort"          value=".2"/>
<!-- hands properties -->
<xacro:property name="upper_arm_length"                     value=".5"/>
<xacro:property name="forearm_length"                       value=".2"/>
<xacro:property name="upper_arm_min_angle"                  value=".2"/>
<xacro:property name="upper_arm_max_angle"                  value=".2"/>
<xacro:property name="forearm_min_angle"                    value="-4"/>
<xacro:property name="forearm_max_angle"                    value="4"/>
<xacro:property name="arm_max_effort"                       value=".2"/>
<xacro:property name="arm_max_velocity"                     value=".2"/>
<!-- Starting the robot definition -->
<link name="base_link">
    <visual>
        <geometry>
            <cylinder radius="${cyl_radius}" length="${cyl_height}"/>
        </geometry>
        <material name="blue">
            <color rgba="0 0 .8 1"/>
        </material>
    </visual>
    <collision>
        <geometry>
            <cylinder radius="${cyl_radius}" length="${cyl_height}"/>
        </geometry>
        <origin xyz="0 0 0" rpy="0 0 0"/>
    </collision>
</link>

<joint name="base_to_body_joint" type="fixed">
    <parent link="base_link"/>
    <child link="body"/>
    <origin xyz="${body_dist_to_center} 0 ${(cyl_height + body_height)/2}"/>
</joint>

<link name="body">
    <visual>
        <geometry>
            <box size="${body_width} ${body_width} ${body_height}"/>
        </geometry>
        <material name="red">
            <color rgba="1 0 0 1"/>
        </material>
    </visual>
    <collision>
        <geometry>
            <box size="${body_width} ${body_width} ${body_height}"/>
        </geometry>
    </collision>
</link>

<joint name="shoulder_leveler" type="prismatic">
    <parent link="body"/>
    <child link="shoulder"/>
    <origin xyz="${shoulder_to_body_distance_x} 0 ${(shoulder_min_height + shoulder_max_height - body_height)/2}" rpy="0 0 0"/>
    <axis xyz="0 0 1"/>
    <limit lower="${shoulder_min_height}" upper="${shoulder_max_height}" 
           effort="${max_shoulder_leveler_effort}" velocity="${max_shoulder_leveler_velocity}" />
</joint>

<link name="shoulder">
    <visual>
        <geometry>
            <box size="${shoulder_rec_size} ${shoulder_length} ${shoulder_rec_size}"/>
        </geometry>
        <material name="red_1">
            <color rgba="0.5 0 0 1"/>
        </material>

    </visual>
    <collision>
        <geometry>
            <box size="${shoulder_rec_size} ${shoulder_length} ${shoulder_rec_size}"/>
        </geometry>
    </collision>
</link>


<xacro:macro name="hand" params="prefix reflect">
    <joint name="${prefix}_shoulder_joint" type="revolute">
        <parent link="shoulder"/>
        <child link="${prefix}_upper_arm"/>
        <axis xyz="0 1 0"/>
        <origin xyz="0 ${reflect * shoulder_length/2} ${-upper_arm_length/2}"/>
        <limit lower ...
(more)
2014-01-23 16:46:19 -0500 received badge  Popular Question (source)
2013-07-03 07:24:35 -0500 asked a question Implementations of Loop Detectors for SLAM

Hi everyone! I am programming a robot for simple indoor SLAM, and I was wondering if there are any open source loop detectors implementations to use in SLAM loop closure? I didn't find anything inside ROS but I'm relatively new to it.

Thanks

2013-04-01 02:46:56 -0500 commented answer how to link openni library through the "CMakeLists.txt" file

I can confirm this works under Kubuntu 12.10, ros groovy.

2013-04-01 02:45:39 -0500 received badge  Supporter (source)
2013-03-27 00:46:41 -0500 received badge  Famous Question (source)
2013-01-29 14:43:23 -0500 received badge  Notable Question (source)
2013-01-13 14:11:44 -0500 received badge  Popular Question (source)
2013-01-10 21:01:25 -0500 received badge  Editor (source)
2013-01-10 20:22:34 -0500 asked a question Kinect data publishing strange behaviour

Hi everyone,

After release of groovy I did a clean install of Kubuntu 12.10 and groovy. I also have a windows 7 installed with Microsoft Kinect SDK, which can work with my Kinect for Xbox very well, so there is no hardware issue. When I run rviz or image viewers, upon moving my kinect sometime the images freeze. This is the output of rostopic hz /camera/depth_registered/points

average rate: 5.390
    min: 0.023s max: 13.525s std dev: 0.81439s window: 410
average rate: 5.382
    min: 0.023s max: 13.525s std dev: 0.81341s window: 411
no new messages
no new messages
no new messages
no new messages
average rate: 5.143
    min: 0.023s max: 13.525s std dev: 0.83635s window: 423

Does anybody know why this happens? and why frequency is around 5hz? I have a powerful CPU and GPU, and in windows point cloud is generated at around 30fps.

2012-12-18 13:45:02 -0500 received badge  Famous Question (source)
2012-10-26 05:39:21 -0500 commented question Switching from OpenNI to OpenKinect

Sure, Thanks. I'll do it next time :)

2012-10-25 22:38:01 -0500 received badge  Notable Question (source)
2012-10-24 04:46:38 -0500 received badge  Popular Question (source)
2012-10-24 01:21:32 -0500 asked a question Switching from OpenNI to OpenKinect

Hi everyone, I wanted to use kinect for my robot project, and installed ROS and openni drivers by following instructions to the letter (I'm also new to ROS). But after starting to run the samples I ran into many problems that also other people seem to have with openni and couldn't solve them. For example I cannot get rviz to show the pointcould to me, and after closing image_view for viewing either rgb or depth data, I have to close openni_launch, kill the driver and reconnect my kinnect to be able to view depth or rgb data again. As far as I know by searching this forum, there is no current solution to this problem. But I have installed openkinect on my windows and it works correctly. I was wondering how can I remove openni driver and start working with openkinect?

Thanks in advance, Kourosh