Giter VIP home page Giter VIP logo

pilz_teach's People

Contributors

damkovosh avatar hardthof avatar jschleicher avatar rfeistenauer avatar tobi-v avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pilz_teach's Issues

[feature/6D_key_teleop] Show active plane in Rviz

While using keyboard input with the 6D teleoperation you can move the robot on 2D planes.
Those planes can be toggled.

I would like to have the active plane visualized in RVIZ, to see which effect my key input might have.

[Launch jog_arm] rostest

Write a rostest to automatically start-up the launch file to make sure, all the dependencies and the launch parameters exist.

See #3, which only added the travis configuration

[ROS2 eval] test_node

Startup moveit_planning_execution.launch and send a MotionPlanRequest or similar to move the robot via ros bridge.

[UI tests] refinements

Implement changes for the second run

based on key_teleop:

  • Include jointwise and axiswise rotation in all bindings
  • Name rotation as rx ry rz everywhere
  • Axis rotation missing in description
  • Add max velocity: Speed button is always maxed speed, and normal speed is adjustable
  • Try using ctrl as speed button
  • Double-check correct units ([m/s] and [rad/s] are misleading)
  • Adjust the descriptions: Use tables for better structure, leave away quotation marks

[store points] save multiple positions from UI

The functions to store points into a python file are added to the UI. For example F2 to create a new file, defining its filename, F3 to store the current robot Pose (entering its name) and F4 key to append a joint pose.

Only implements creation of points; remove, update, delete will be implemented later.

Wouldn't adding two parameters for file name and point name improve the usability a lot? Or will those be added in another PR along the possibility to add multiple points to one file?

Originally posted by @DamKoVosh in #49 (comment)

[Launch jog_arm] CI test

Use travis to automatically start-up the launch file once to make sure, all the dependencies and the launch paramters exist.

Velocity displayed may not be correct

Commit

18bf9c2

Steps to reproduce

start key_teleop.launch

Observed behavior

The terminal displayes angular and linear velocity in rad/s and m/s, this may not necessarily be correct since the binding does not use max speed. The value that is displayed is more % but not of the max value, but the one in the binding config.

Error on launch

Commit

782b845

Steps to reproduce

After downloading and building, along with moveit_msgs and moveit_jog_arm packages, I run:

 roslaunch prbt_jog_arm_support prbt_jog_arm_sim.launch  

Expected behavior

Rviz should open and console should show no errors.

Observed behavior

The following error is shown:

[ INFO] [1583315115.366003023]: Stereo is NOT SUPPORTED
[ INFO] [1583315115.366082616]: OpenGl version: 3 (GLSL 1.3).
[controller_loader-7] process has finished cleanly
log file: /home/darioroa/.ros/log/d88f4f66-5dfc-11ea-acc4-dca904841882/controller_loader-7*.log
[fake_joint_driver-5] process has died [pid 30386, exit code -11, cmd /opt/ros/melodic/lib/fake_joint_driver/fake_joint_driver_node __name:=fake_joint_driver __log:=/home/darioroa/.ros/log/d88f4f66-5dfc-11ea-acc4-dca904841882/fake_joint_driver-5.log].
log file: /home/darioroa/.ros/log/d88f4f66-5dfc-11ea-acc4-dca904841882/fake_joint_driver-5*.log
[ WARN] [1583315119.967002532]: Waiting for manipulator_joint_trajectory_controller//follow_joint_trajectory to come up
[ WARN] [1583315125.967417289]: Waiting for manipulator_joint_trajectory_controller//follow_joint_trajectory to come up
[ERROR] [1583315131.967821841]: Action client not connected: manipulator_joint_trajectory_controller//follow_joint_trajectory

[6D-teleop] Settings from parameter server

The teleoperation settings are currently hard coded. To change the default or max speed it would require to fork our repo, we should load those settings from the parameter server. Either with an config file or by making them single arguments.

[6D teleop] rotation

additional 6 keys for rotation, e.g.

q | w | e   x+ | y+ | z+
a | s | d   x- | y- | z-

[visualize points in RViz]

  • publish all Poses for a positions file as tf2
  • publish JointPositions so that they are displayed in RViz (e.g. calculating forward kinematics or visualizing robot state)

Compilation failed

Commit

pilz_teach: d0dfb
pilz_robots: b5d88
moveit: efa7f

Steps to reproduce

mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace
git clone https://github.com/PilzDE/pilz_teach.git
git clone https://github.com/PilzDE/pilz_robots.git
git clone https://github.com/ros-planning/moveit.git
OR: git clone https://github.com/PilzDE/moveit.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
catkin_make

Expected behavior

Should compile without error

Observed behavior 1:

catkin_ws/src/moveit/moveit_core/robot_state/src/conversions.cpp: In function ‘void moveit::core::{anonymous}::attachedBodyToMsg(const moveit::core::AttachedBody&, moveit_msgs::AttachedCollisionObject&)’:
/home/christian/catkin_ws/src/moveit/moveit_core/robot_state/src/conversions.cpp:219:14: error: ‘moveit_msgs::AttachedCollisionObject
<std::allocator >::object_type {aka struct moveit_msgs::CollisionObject<std::allocator >}’ has no member named ‘subframe_names’
aco.object.subframe_names.clear();

Observed behavior 2:

catkin_ws2/src/pilz_robots/prbt_hardware_support/src/libmodbus_client.cpp: In member function ‘virtual void prbt_hardware_support::LibModbusClient::setResponseTimeoutInMs(long unsigned int)’:
/home/sascha/catkin_ws2/src/pilz_robots/prbt_hardware_support/src/libmodbus_client.cpp:56:51: error: invalid conversion from ‘timeval*’ to ‘uint32_t {aka unsigned int}’ [-fpermissive]
modbus_set_response_timeout(modbusconnection, &response_timeout);
^~~~~

Operating system:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic

Real robot jogging failed

Simulation succeeded. Real jogging failed.

Steps to reproduce

How can the issue/bug be reproduced?

  1. In "prbt_jog_arm_sim.launch" file, change "sim" value to True.
  2. roslaunch prbt_jog_arm_support prbt_jog_arm_sim.launch
  3. roslaunch pilz_teleoperation key_teleop.launch

Expected behavior

Real robot can be jogged by keys

Observed behavior

Robot initialized, break released. No movement. Got some EMCY errors and a 3D sensor error.

Logfiles

Starting planning scene monitors...
...
[ERROR] [1583827607.334247236]: Failed to find 3D sensor plugin parameters for octomap generation
...
[ INFO] [1583827608.352193404]: waitForService: Service [/prbt/manipulator_joint_trajectory_controller/hold] has not been advertised, waiting...
[ERROR] [1583827608.372707285]: EMCY received: 83#0000000000000000
[ERROR] [1583827608.376348170]: EMCY received: 84#0000000000000000
[ERROR] [1583827608.379154348]: EMCY received: 85#0000000000000000
[ERROR] [1583827608.382530051]: EMCY received: 86#0000000000000000
[ERROR] [1583827608.385933620]: EMCY received: 87#0000000000000000
[ERROR] [1583827608.390027850]: EMCY received: 88#0000000000000000
[ INFO] [1583827608.390509914]: Initializing successful
[ INFO] [1583827608.435816434]: waitForService: Service [/prbt/safe_torque_off] has not been advertised, waiting...
[ INFO] [1583827608.564347025]: waitForService: Service [/prbt/manipulator_joint_trajectory_controller/hold] has not been advertised, waiting...
[ INFO] [1583827608.646892018]: waitForService: Service [/prbt/safe_torque_off] has not been advertised, waiting...
[ INFO] [1583827608.690148065]: waitForService: Service [/prbt/manipulator_joint_trajectory_controller/hold] is now available.
[ INFO] [1583827608.709660182]: waitForService: Service [/prbt/safe_torque_off] is now available.
[ INFO] [1583827608.922283993]: Recovering...
[ INFO] [1583827608.922387241]: Recovering successful
[ INFO] [1583827608.933523867]: Added FollowJointTrajectory controller for prbt/manipulator_joint_trajectory_controller/
[ INFO] [1583827608.933665933]: Returned 1 controllers in list
[ INFO] [1583827608.953969227]: Trajectory execution is managing controllers
Loading 'move_group/ApplyPlanningSceneService'...
Loading 'move_group/ClearOctomapService'...
Loading 'move_group/MoveGroupCartesianPathService'...
Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
Loading 'move_group/MoveGroupGetPlanningSceneService'...
Loading 'move_group/MoveGroupKinematicsService'...
Loading 'move_group/MoveGroupMoveAction'...
Loading 'move_group/MoveGroupPickPlaceAction'...
Loading 'move_group/MoveGroupPlanService'...
Loading 'move_group/MoveGroupQueryPlannersService'...
Loading 'move_group/MoveGroupStateValidationService'...
Loading 'pilz_trajectory_generation/MoveGroupSequenceAction'...
[ INFO] [1583827609.085680223]: initialize move group sequence action
[ INFO] [1583827609.099722389]: Reading limits from namespace /robot_description_planning
Loading 'pilz_trajectory_generation/MoveGroupSequenceService'...
[robot_init-8] process has finished cleanly
log file: /home/pilz/.ros/log/14fedb8a-62a6-11ea-ab59-94659c149f51/robot_init-8*.log
[ INFO] [1583827609.105842175]: Reading limits from namespace /robot_description_planning
[ INFO] [1583827609.112137466]:
...
[ INFO] [1583827609.112282316]: MoveGroup context using planning plugin pilz::CommandPlanner
[ INFO] [1583827609.112330952]: MoveGroup context initialization complete

You can start planning now!

[ INFO] [1583827609.261482484]: Waiting for low-pass filters to stabilize.
[ INFO] [1583827609.261644833]: jog_calcs_thread: Received first joint msg.
[ INFO] [1583827609.265982934]: Call "get firmware" service for "prbt_joint_1"
[ INFO] [1583827609.281946513]: Call "get firmware" service for "prbt_joint_2"
[ INFO] [1583827609.293940077]: Call "get firmware" service for "prbt_joint_3"
[ INFO] [1583827609.309381795]: Call "get firmware" service for "prbt_joint_4"
[ INFO] [1583827609.323019276]: Call "get firmware" service for "prbt_joint_5"
[ INFO] [1583827609.337825051]: Call "get firmware" service for "prbt_joint_6"
[ WARN] [1583827609.342169092]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ INFO] [1583827609.351428375]: Firmware version [prbt_joint_1]: 100 Build:11158 Date:2018-06-07 16:49:555
[ INFO] [1583827609.351513286]: Firmware version [prbt_joint_2]: 100 Build:11158 Date:2018-06-07 16:49:555
[ INFO] [1583827609.351542115]: Firmware version [prbt_joint_3]: 100 Build:11158 Date:2018-06-07 16:49:55U
[ INFO] [1583827609.351564671]: Firmware version [prbt_joint_4]: 100 Build:11158 Date:2018-06-07 16:49:55A
[ INFO] [1583827609.351588605]: Firmware version [prbt_joint_5]: 100 Build:11158 Date:2018-06-07 16:49:55%
[ INFO] [1583827609.351609844]: Firmware version [prbt_joint_6]: 100 Build:11158 Date:2018-06-07 16:49:555
[prbt/system_info_node-13] process has finished cleanly
log file: /home/pilz/.ros/log/14fedb8a-62a6-11ea-ab59-94659c149f51/prbt-system_info_node-13*.log
[ WARN] [1583827619.342220384]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827629.342254603]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827639.350273551]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827649.358171387]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827659.358199212]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827669.358248350]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827679.358224114]: Stale command. Try a larger 'incoming_command_timeout' parameter?
[ WARN] [1583827689.366234902]: Stale command. Try a larger 'incoming_command_timeout' parameter?

If plane or axis is toggled the standard jogging by x,y,z or rx, ry, rz is also changed.

When another plane/axis is toggled the standard jogging by x,y,z or rx, ry, rz is also changed.
This can resolve in unexprected behaviour.

There is no easy fix for this, since the jogging request is only a twist msg. The driver is not able to know if this is supposed to be projected to a plane or not.

Solutions:

  • remove plane toggle at all and use numpad for xy movement only
  • use tfs instead of projection planes, which makes the changed behaviour visible to the user.

Originally posted by @DamKoVosh in #46

English / German bindings

We need to consider adding an argument to switch the keyboard layout / bindings on the keyboard

when defining a binding other than on the numpad it may only be usable in some countries depending on the used keyboard layout. This is especially true for german and english layouts (z-y and äöü...)

[store points] evaluate format

for easy storage

  • humand-readable / edit(?)
  • easy to import into python-(API)-script
  • allows names and cartesian / joint positions

[CI] Ensure Python 3 Compatibility

Use the Pylint project and its --py3k flag in CI to lint the code to receive warnings when it begins to deviate from Python 3 compatibility.

[UI tests] prepare test cases

  • define test cases and metrics
    • Necessary time
    • Problems in understanding
    • Feedback
  • instructions for test cases
  • implementation for test cases

[6D-key_teleop] initial teleoperation implementation

based on #1

The virtual robot moves "somehow" via keyboard presses. This should implement / fork an initial keyboard control and show, what needs to be done in future PBIs.

Evaluate, if possible or already available

  • robot stops on key-release
  • single-joint jogging
  • cartesian 6D jogging
  • velocity scaling
  • define other coordinate frame (like tcp cartesian jogging)

[teleop real robot]

Simulation succeeds. Real jogging fails.

We should write a launch file to bringup real robot with velocity controller.
Only active in T1 operation mode
Note to update Readme / Documentation

python-coverage for unittests

the _nosetests macro reads the environment variable CATKIN_TEST_COVERAGE, so that has to be set, see catkin/cmake

export CATKIN_TEST_COVERAGE=1

Then a .coverage is created inside the build directory. We'd have to combine them with the rostest output and different nosetest runs (that are using unittest without nose by the way)

In fact I think we probably need to fix the catkin cmake macros for proper python coverage...

Originally posted by @jschleicher in #34 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.