Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

raw3 3 canopen #661

Merged
merged 7 commits into from
May 8, 2017
Merged

raw3 3 canopen #661

merged 7 commits into from
May 8, 2017

Conversation

fmessmer
Copy link
Member

this PR migrates raw3-3 base to ros_canopen
see #422

thanks @ipa-jba and @ipa-mdl for doing this!

@fmessmer
Copy link
Member Author

@destogl @andreeatulbure
this might be of interest for you as we made some consistency changes within the (raw3-common) raw3_base_driver.yaml file which is also used on your raw3-5
Could you quickly test this branch and let us know whether it works for you? Thanks

@fmessmer
Copy link
Member Author

fmessmer commented Apr 26, 2017

we need to make the steer_ctrl parameters of the cob_omni_drive_controller/WheelController robot-specifc:
for raw3-3 they previously have been set to

    steer_ctrl: # Parameters for tuning Impedance-Controller
      spring: 15.0 #10.0
      damp: 2.75 #2.5
      virt_mass: 0.1 #0.1
      d_phi_max: 12.0 #100.0
      dd_phi_max: 40.0 #100.0

but in raw3_base_controller.yaml they are now:

     steer_ctrl: # Parameters for tuning Impedance-Controller
       spring: 9.5
       damp: 2.25
       virt_mass: 0.1 
       d_phi_max: 12.0 #100.0
       dd_phi_max: 40.0 #100.0

@mathias-luedtke
Copy link
Contributor

Three options:

  1. try to make them the same
  2. Split config (upload additional params in raw3_base.launch)
  3. separate config (with controller_yaml arg)

@fmessmer
Copy link
Member Author

fmessmer commented Apr 26, 2017

@ipa-jba will post a few comments about the steps to-be-done to setup the pcan driver in #422

@jabbenseth
Copy link
Contributor

see #422 (comment)

@fmessmer
Copy link
Member Author

fmessmer commented Apr 27, 2017

@ipa-jba
I added another commit that should handle the control parameter missmatch between raw3-3 and raw3-5
please retest

@ipa-mdl
I opted for this approach as I did not want to add base_controller.yaml files back to all the other robots which seem to work fine with the default values...
What do you think?

@fmessmer
Copy link
Member Author

The parameter handling did not fully solve the oscillation....we'll do an evaluation analogue to https://github.com/ipa320/cob_control/issues/143

@jabbenseth
Copy link
Contributor

Right now the base starts to oscillate on the drive wheels. See the attached screenshot (shown is a rotation, where oscillation is more visible, but not exclusive)
screenshot from 2017-04-27 14 43 57

This is only reproducible if the base is on the floor (not hanging)

@fmessmer
Copy link
Member Author

according to @ipa-tif this is due to hitting an resonance frequency with the drive wheels working against the springs. a similar behavior has been observed on cob4 with loosely tuned elmo controllers

thus, it is not an issue of ros_canopen and/or configuration but an issue of the internal elmo controller configuration.

next step would be to investigate to what extend the elmo controllers can be tuned
the old elmo configuration laptop is put on raw3-3 - and either @ipa-tif or @ipa-bdw are able to check this

@fmessmer
Copy link
Member Author

Another issue was with emergency stop being triggered which required modifications in ros_canopen see ros-industrial/ros_canopen#234

@fmessmer
Copy link
Member Author

fmessmer commented May 6, 2017

@ipa-mdl ready for final review
@ipa-jba @ipa-mig ready for final test
(note: this branch is rebased...use git checkout -B raw3-3_canopen origin-fxm/raw3-3_canopen)

I'll merge once I get your approvals


<!-- start external sync node if requested -->
<node ns="$(arg component_name)" pkg="canopen_chain_node" type="canopen_sync_node" name="sync_$(arg can_device)" output="screen" if="$(arg start_external_sync)">
<rosparam subst_value="True">{bus: { device: $(arg can_device) }, sync: { interval_ms: $(arg interval_ms), overflow: $(arg overflow) } }</rosparam>
<param name="reset_errors_before_recover" value="$(arg reset_errors_before_recover)"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this does not belong here


<arg name="component_name" value="base"/>
<arg name="interval_ms" value="20"/>
<arg name="use_external_sync" value="false"/>
<arg name="start_external_sync" value="false"/>

<rosparam unless="$(arg sim)" ns="$(arg component_name)/driver" command="load" file="$(arg driver_yaml)"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the right place, I don't know why it was below beforehand.
It might break other robots with outdated configs..

<arg name="robot" value="$(arg robot)"/>
<include file="$(find cob_bringup)/components/raw3_base.launch" >
<arg name="robot" value="$(arg robot)" />
<arg name="can_device" value="can0" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can0 is the default

Copy link
Member Author

@fmessmer fmessmer May 8, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but the argument is required...

@@ -60,6 +60,8 @@
<arg name="can_device" value="can1" />
<arg name="sim" value="$(arg sim)"/>
</include>
<!-- overwrite control parameters with non-default values -->
<rosparam ns="base/driver" command="load" file="$(find cob_hardware_config)/robots/$(arg robot)/config/base_controller.yaml"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks wrong, controller config should go into base namespace

steer_ctrl: # Parameters for tuning Impedance-Controller
spring: 9.5
damp: 2.25
virt_mass: 0.1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the last three could be omited, since the are same as in the default config

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's keep the parameters together...

@fmessmer
Copy link
Member Author

fmessmer commented May 8, 2017

I considered @ipa-mdl's comments and tested this branch (including ros-industrial/ros_canopen#234) onc cob4-9...works as expected

I will do a final test with @ipa-jba on raw3-3 to clarify #661 (comment)

@mathias-luedtke
Copy link
Contributor

merged the reset feature.

@fmessmer fmessmer merged commit 687b92a into ipa320:indigo_dev May 8, 2017
@fmessmer fmessmer deleted the raw3-3_canopen branch November 2, 2017 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants