What is ros-control

in #dev5 years ago (edited)

I wrote summary about ros control.
What is ros-control?
How to use ros-control?
Thank you.

ros-control

http://wiki.ros.org/ros_control

  • A set of packages that include controller interfaces, controller managers, transmissions and hardware_interfaces.
  • The ros_control packages are a rewrite of the pr2_mechanism packages to make controllers generic to all robots beyond just the PR2.
  • The ros_control packages takes as input the joint state data from your robot’s actuator’s encoders and an input set point. It uses a generic control loop feedback mechanism, typically a PID controller, to control the output, typically effort, sent to your actuators. ros_control gets more complicated for physical mechanisms that do not have one-to-one mappings of joint positions, efforts, etc but these scenarios are accounted for using transmissions.

There are some modules.

  • Controller manager
  • Controller
  • Hardware interface

ros control

<http://gazebosim.org/tutorials/?tut=ros_control>

Controller don’t care which module (simulation or hardware) provide data.

Controller needs joint state info and joint command info.


Controller

There are many controller on ros-control.

I used joint state_controller and joint_trajectory_controller for head control.

You need to set control parameter (PID gain, velocity_ff, etc.)

In control.yaml, head_controller has two joint (pan_joint and tilt_joint) and make trajectories.

Trajectories are specified as a set of waypoints to be reached at specific time instants, which the controller attempts to execute as well as the mechanism allows. Waypoints consist of positions, and optionally velocities and accelerations.


Controller_manager

controller_manager manages some controllers

controller_manager needs to load controllers.

<!– Load joint controller configurations from YAML file to parameter server –>
<rosparam file=”$(find cam_pan_tilt)/config/control.yaml” command=”load”/>

output=”screen” ns=”/gretchen” args=”joint_state_controller
head_controller”/>


RQT_GRAPH


How to connect real robot

need to costruct hardware_inferface

It is hardware_interface example.

ROBOTICS made hardware_interface of dynamixel motor for ros-control.


Example

1) Head Controller

Head controller control pan and tilt. input of the controller is tf, joint_states, head_controller/state

  • tf
    • tf is relationship between frames
    • tf is a package that lets the user keep track of multiple coordinate frames over time. tf maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

  • joint_states
    • it is raw data from motor controller

  • head_controller/state
    • desired, actual, error check for control
    • it is calculated by controller.

output

  • head_controller/command
    • set radian postion at each joint

2) Other robot

You can easily control the robot manipulator using ros-control and moveit.

3) Simple pan title model

1. User click a point

2. make target_line using the point

Target_line consist of those

  • geometry_msgs/PointStamped target
  • geometry_msgs/Vector3 pointing_axis
  • string pointing_frame
  • duration min_duration
  • float64 max_velocity

3. calculate inverse kinematics for getting joint angles

4. publish angle on each joint

5. move


Why it is need?

Once control part constructed using ros-package.

Perception part focus recognition and just publish u,v.

Reference

Sort:  

짱짱맨 호출에 응답하여 보팅하였습니다.

Hi @jacobyu!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 2.474 which ranks you at #16638 across all Steem accounts.
Your rank has improved 81 places in the last three days (old rank 16719).

In our last Algorithmic Curation Round, consisting of 252 contributions, your post is ranked at #121.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • You have already convinced some users to vote for your post, keep trying!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

어마어마한 자료를 정리해 놓으셨네요^^

밀리언님 감사합니다 ㅎㅎ
아 그리고 게임에 치명적인 에러가 있습니다. 보팅하고 코인받는거에서
한번만 받고 없애야하는데 계속받을수있는거 같습니다.

그게, 제 댓글에다가도 보팅을 하도록 해 놓아서 그런거 같습니다.^^
페이아웃되기전 댓글에다가도 보팅하도록 프로그램 되어 있어서 포스팅 수가 적고 한번 밖에 포스팅 못하는 것을 커버하려 했기 때문이죠.
아무튼 그런 오류가 있는지 찾아 봐야겠습니다^^
어쨌든지금 수익모델로는 지지를 못받고, 오히려 보팅해 주는 모델이 되어야 할 것 같습니다.
오류지적 감사합니다^^

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64386.10
ETH 3142.17
USDT 1.00
SBD 3.98