{"id":21103080,"url":"https://github.com/robotnikautomation/robotnik_base_hw_sim","last_synced_at":"2025-05-16T18:34:59.439Z","repository":{"id":52077017,"uuid":"138847961","full_name":"RobotnikAutomation/robotnik_base_hw_sim","owner":"RobotnikAutomation","description":"Simulates base_hw related components","archived":false,"fork":false,"pushed_at":"2024-10-30T14:38:44.000Z","size":102,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":7,"default_branch":"ros-devel","last_synced_at":"2024-10-30T15:34:29.757Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobotnikAutomation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-27T07:49:29.000Z","updated_at":"2024-10-30T12:15:59.000Z","dependencies_parsed_at":"2023-11-28T11:24:15.131Z","dependency_job_id":"601e0a6c-6cb9-4141-8bc2-77af3d286ca3","html_url":"https://github.com/RobotnikAutomation/robotnik_base_hw_sim","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_base_hw_sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_base_hw_sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_base_hw_sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_base_hw_sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobotnikAutomation","download_url":"https://codeload.github.com/RobotnikAutomation/robotnik_base_hw_sim/tar.gz/refs/heads/ros-devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225444586,"owners_count":17475354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T23:57:38.482Z","updated_at":"2024-11-19T23:57:39.039Z","avatar_url":"https://github.com/RobotnikAutomation.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# robotnik_base_hw_sim\n\nThis package is intended to simulate the Robotnik base hw common in most of the platforms\n\n## 1. robotnik_base_hw_sim_node\n\n### 1.1 Bringup\n\nRun the following launch inside the desired namespace.\n\n**Arguments**\n\n* robot_id: robot namespace. By default robot\n* prefix: prefix for the default joints (for multirobots envs). By default it takes the robot_id + '_'\n* config_yaml: default config yaml. Every robot should have one.\n* publish_battery_estimation: enables the publication of the battery estimation based on internal estimation. By default true.\n\nFor Summit XL:\n```\nroslaunch robotnik_base_hw_sim robotnik_base_hw_sim.launch robot_id:=robot config_yaml:=summit_xl\n```\n\nFor RB-THERON\n```\nroslaunch robotnik_base_hw_sim robotnik_base_hw_sim.launch robot_id:=robot config_yaml:=rb_theron\n```\n\n## 2. robotnik_elevator_controller plugin\n\nPlugin to simulate the Elevator interface available in some robots.\n\nIt requires a transmission of **\u003chardwareInterface\u003ehardware_interface/EffortJointInterface\u003c/hardwareInterface\u003e**.\n\nExample of control configuration:\n\n```\n  robotnik_elevator_controller:\n    type        : \"robotnik_elevator_controller/RobotnikElevatorController\"\n    joint:    \n      elevator_joint:\n        name: rb2_a_elevator_platform_joint\n    elevator_position_up: 0.05\n    elevator_position_down: 0.0\n    # delay time to perform the elevation\n    elevation_action_time: 1.0\n    # params for the pickup avoiding Gazebo physics (see elevator_fake_pickup_gazebo)\n    gazebo:\n      # if true, the carts will be raised avoiding contact\n      disable_gazebo_physics_for_pickup: true\n      pickup_service: \"/elevator_fake_pickup_gazebo/simple_pick\"\n      place_service: \"/elevator_fake_pickup_gazebo/simple_place\"\n      # model id used in Gazebo\n      robot_model: \"rb2_a\"\n      # distance in z to move the picked cart\n      elevation_offset_z: 0.07  \n```\n\n## 3. elevator_fake_pickup_gazebo node\n\nROS node to perform pick and place of object avoiding the physics. It uses the available gazebo ROS topics and services.\nIt is intended to pick \u0026 place carts/trolleys with a mobile base.\n\nThe way it works:\n\n1. Pick: removes gravity of the object to pick\n2. Sets the position of the object in the same one than the robot. This is done continuosly.\n3. Place: sets the gravity of the picked object and stops setting the position of the robot\n\n### 3.1 bringup\n\n```\nroslaunch robotnik_base_hw_sim elevator_fake_pickup_gazebo.launch\n```\n\n*Arguments:*\n * config_yaml: path to the yaml containing the configuration\n\n\n### 3.2 params\n\n*YAML Example:*\n   ```\n   objects:\n -\n   model: rb2cart\n   default_link: link_0\n -\n   model: rb2cart_0\n   default_link: link_0\n\nrobots:\n-\n   model: rb2_a\n   default_link: rb2_a_base_footprint\n-\n   model: rb2_b\n   default_link: rb2_b_base_footprint\n\nconfig:\n  # min distance for the simple pick\n  min_picking_distance: 0.1\n   ```\n### 3.3 topics\n#### 3.3.1 publishers\n\n * gazebo_picking_links [gazebo_msgs/LinkStates]\n   * gazebo links of the available objects to pick, based on configuration\n * gazebo_picking_models [gazebo_msgs/ModelStates]\n   * gazebo models of the available objects to pick, based on configuration\n * gazebo_robot_links [gazebo_msgs/LinkStates]\n   * gazebo links of the available robots/links able to pick, based on configuration\n * gazebo_robot_models [gazebo_msgs/ModelStates]\n   * gazebo models of the available robots able to pick, based on configuration\n * pick_states [robotnik_base_hw_sim/PickStates]\n   * List of the current elements that are attached\n * state [robotnik_msgs/State]\n   * Component state machine\n\n#### 3.3.2 subscribers\n\n * /gazebo/link_states [gazebo_msgs/LinkStates]\n   * state of all the links of Gazebo\n * /gazebo/model_states [gazebo_msgs/ModelStates]\n   * state of all the models of Gazebo\n\n### 3.4 services\n#### 3.4.1 clients\n * /gazebo/get_link_properties [gazebo_msgs/GetLinkProperties]\n * /gazebo/set_link_properties [gazebo_msgs/SetLinkProperties]\n * /gazebo/set_link_state [gazebo_msgs/SetLinkState]\n\n#### 3.4.2 servers\n * pick [robotnik_base_hw_sim/Pick]\n   * Pick an object and link it to a robot\n   * Example:\n\n```\nrosservice call /elevator_fake_pickup_gazebo/pick \"object_model: 'rb2cart'\nobject_link: 'link_0'\nrobot_model: 'rb2_a'\nrobot_link: 'rb2_a_base_footprint'\npose:\n  position: {x: 0.0, y: 0.0, z: 0.2}\n  orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0}\"\nsuccess: True\nmsg: \"OK\"\n```\n\n * place [robotnik_base_hw_sim/Place]\n   * Place a picked object    \n   * Example:\n\n```\nrosservice call /elevator_fake_pickup_gazebo/place \"object_model: 'rb2cart'\nrobot_model: 'rb2_a'\"\n```\n* simple_pick [robotnik_base_hw_sim/SimplePick]\n   * Pick the closest object to a robot (within a min distance)\n   * Example:\n\n```\nrosservice call /elevator_fake_pickup_gazebo/simple_pick \"robot_model: 'rb2_a'                     \npose:\n  position:\n    x: 0.0\n    y: 0.0\n    z: 0.1\n  orientation:\n    x: 0.0\n    y: 0.0\n    z: 0.0\n    w: 0.0\"\nsuccess: True\nmsg: \"OK\"\n```\n* simple_place[robotnik_base_hw_sim/SimplePlace]\n   * Places the object(s) the robot has picked\n   * Example:\n\n```\nrosservice call /elevator_fake_pickup_gazebo/simple_place \"robot_model: 'rb2_a'\"\nsuccess: True\nmsg: \"OK\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Frobotnik_base_hw_sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotnikautomation%2Frobotnik_base_hw_sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Frobotnik_base_hw_sim/lists"}