Coder Social home page Coder Social logo

rayvburn / hubero Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 6.88 MB

HuBeRo - a Framework to Simulate Human Behaviour in Robot Research

Home Page: https://github.com/rayvburn/hubero

License: BSD 3-Clause "New" or "Revised" License

CMake 4.02% C++ 95.93% C 0.05%
actor gazebo human robotics ros simulation social

hubero's People

Contributors

rayvburn avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hubero's Issues

Provide a link to an article and post a BibTeX citation

@article{karwowski2021hubero,
title={HuBeRo - a Framework to Simulate Human Behaviour in Robot Research},
volume={15},
url={https://www.jamris.org/index.php/JAMRIS/article/view/664},
DOI={10.14313/JAMRIS/1-2021/4},
number={1},
journal={Journal of Automation, Mobile Robotics and Intelligent Systems},
author={Karwowski, Jarosław and Dudek, Wojciech and Węgierek, Maciej and Winiarski, Tomasz},
year={2021},
month={Jul.},
pages={31-38}
}

decompose complex tasks

E.g. SitDown should not consist of MoveToGoal -> SitDown -> Sitting -> StandingUp -> Standing. A better approach would use MoveToGoal, SitDown and StandUp (separately) - user has better control over scenario execution then.

redesign `TaskBase` class

Lack of possibility to mark template method as virtual led to create an ugly workaround

Symptom: base class request methods got called each time, instead of derived class'

CMake `CMP0054` warnings

Appeared first on Ubuntu 18:

CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (PkgConfig)
  does not match the name of the calling package (gazebo).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)
  /usr/lib/x86_64-linux-gnu/cmake/gazebo/gazebo-config.cmake:30 (include)
  CMakeLists.txt:11 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindBoost.cmake:1511 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "chrono" will no longer be dereferenced when the
  policy is set to NEW.  Since the policy is not set the OLD behavior will be
  used.
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindBoost.cmake:2117 (_Boost_MISSING_DEPENDENCIES)
  /usr/share/OGRE/cmake/modules/FindOGRE.cmake:318 (find_package)
  /usr/lib/x86_64-linux-gnu/cmake/gazebo/gazebo-config.cmake:175 (find_package)
  CMakeLists.txt:11 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

`FollowObject` task execution start delayed

Currently, first attempt to plan path to a static object (that is shown in the occupancy grid used for planning) usually fails, so it takes Actor::GOAL_UPDATE_PERIOD_DEFAULT seconds until next planning triggers (usually successful).

`hubero_bringup_gazebo_ros` cannot find library built by `hubero_gazebo`

This error happens when hubero_bringup_gazebo_ros/CMakeLists.txt tries to find hubero_gazebo package:

find_package(catkin REQUIRED COMPONENTS
  hubero_gazebo
  hubero_ros
)

Build error descrption:

CMake Error at <PATH_TO_WORKSPACE>/devel/share/hubero_gazebo/cmake/hubero_gazeboConfig.cmake:173 (message):
  Project 'hubero_bringup_gazebo_ros' tried to find library
  'hubero_gazebo_actor'.  The library is neither a target nor built/installed
  properly.  Did you compile project 'hubero_gazebo'? Did you find_package()
  it before the subdirectory containing its code is included?
Call Stack (most recent call first):
  /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  CMakeLists.txt:9 (find_package)

In fact libhubero_gazebo_actor.so is generated, but is located in src/hubero/hubero_gazebo/lib directory. The problem is that I could not manage to add this directory to hubero_gazebo_LIBRARY_DIRS.

I've tried to put into hubero_gazebo/CMakeLists.txt:

link_directories(${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} ${CMAKE_SOURCE_DIR}/lib")
set(CMAKE_LIBRARY_PATH "${CMAKE_LIBRARY_PATH} ${CMAKE_SOURCE_DIR}/lib")

and then in hubero_bringup_gazebo_ros/CMakeLists.txt:

find_package(catkin REQUIRED COMPONENTS
  hubero_gazebo
  hubero_ros
)
# ...
link_directories(${hubero_gazebo_LIBRARY_DIRS})

and hubero_bringup_gazebo_ros/package.xml:

  <build_depend>hubero_gazebo</build_depend>
  <build_depend>hubero_ros</build_depend>

did not help.

Note that .so file path relative to package src is needed to extend GAZEBO_PLUGIN_PATH env variable. So it's not handy to export the library somewhere into devel/.private/....

Possible workaround: PAL, for example, do not place any packages to be found in CMakeLists example. Then, there is no need to find libraries, but lack of any package is detected when trying to launch an executable.

Gazebo interface - `SetAngularAccel()` -> `SetTorque()`

Encountered in Gazebo version 9 - console is flooded with:

[Wrn] [Model.cc:732] Model::SetAngularAccel() is deprecated and has no effect. Use Link::SetTorque() on the link directly instead. 
[Wrn] [Link.cc:747] Link::SetAngularAccel() is deprecated and has no effect. Use Link::SetTorque() instead.

update wiki

  • prepare markdown with separate files first

redesign plan computation during navigation

Create NavigationRos::updateGoalToClosestReachablePose() method that will internally compute plan to the goal in a separate thread - this will prevent from perdiodic freezes while calling ROS service

publish people msg to ROS

  • evaluate whether there is some correlation between trajectory execution duration and actual poses
    • if after few seconds the pose resets then the idea fails
  • implement publishing people data according to the people_msgs/People message
  • implement similar mechanism for static models from Gazebo - Standing person and Walking person

`hubero_ros` - delete deprecated navigation parameters

[ WARN] [1645638578.234465013, 6.409000000]: global_costmap: Pre-Hydro parameter "map_type" unused since "plugins" is provided
[ WARN] [1645638579.661129247, 6.656000000]: local_costmap: Pre-Hydro parameter "static_map" unused since "plugins" is provided

wrong `ActionServer` status returned

Despite of proper execution of, e.g., MoveToGoal, action status returned is PREEMPTED.

Details: TaskRequestRos::actionCbHandler template method (defined in header)

investigate, why goal send during system startup affects further actions

Example - publish goal to lie down action before Gazebo launched:

rostopic pub --once /hubero/actor4/task/lie_down/goal hubero_ros_msgs/LieDownActionGoal "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: 'world'
goal_id:
  stamp:
    secs: 0
    nsecs: 0
  id: ''
goal:
  frame: 'world'
  pos:
    x: 0.5
    y: 6.0
    z: 0.0
  yaw: 0.0"

CMake deprecation warnings

Each package reports

CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at CMakeLists.txt:7 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


CMake Deprecation Warning at /usr/src/googletest/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at /usr/src/googletest/googlemock/CMakeLists.txt:41 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at /usr/src/googletest/googletest/CMakeLists.txt:48 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

other task requested during execution of a task that is not terminatable immediately blocks any further actions

How to reproduce:

Launch:

roslaunch hubero_bringup_gazebo_ros example.launch world:=parking rviz:=false

First, call:

rostopic pub --once /hubero/actor4/task/lie_down/goal hubero_ros_msgs/LieDownActionGoal "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: 'world'
goal_id:
  stamp:    
    secs: 0
    nsecs: 0
  id: ''
goal:
  frame: 'world'
  pos:
    x: 3.5
    y: 6.0
    z: 0.0
  yaw: 0.0"

and when actor is already lying, call:

rostopic pub --once /hubero/actor4/task/move_to_goal/goal hubero_ros_msgs/MoveToGoalActionGoal "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: 'world'
goal_id:
  stamp: now
  id: ''
goal:
  frame: 'world'
  pos:
    x: 5.50
    y: 6.0
    z: 0.0"

Currently, just use actions with caution - when actor is lying, call first:

rostopic pub --once /hubero/actor4/task/lie_down/cancel actionlib_msgs/GoalID "stamp:
  secs: 0
  nsecs: 0
id: ''" 

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.