Skip to main content

rosmobilelib

Enable to struct movement robotic action with ROS, the open-source robotic middleware. This library make able to run that by Python3 code on external of ROS network and workspace.

This is depended roslibpy that allows ROS programing without defining as ROS Node by using rospy.

Main Features

  • Manage features to set ROS robotic movement simply.
  • Dynamic schedule to Goal with sending/waiting of Action.
  • Provide some feature that use for programming with ROS such as coordinate transformation of TF.
  • Give support to synchronize to single callback for needs to subscribed multi topic such as stereo camera system.

Installation

To install rosmobilelib, use pip:

pip install rosmobilelib

or

pip install rosmobilelib --extra-index-url https://test.pypi.org/simple

Documentation

Details coming soon. For now, just watch down and get through it.

Example implementation:

Import libraries.

import roslibpy as rlp
from rosmobilelib import MobileClient

Prepare connection with roslibpy. If you desire details see here.

client = rlp.Ros('localhost', port=9090)
lm1 = lambda: print('is ROS connected: ', client.is_connected)
client.on_ready(lm1)
client.run()

Define MobileClient object and wait for to subscribe needs topics.

lm2 = lambda r: print('reached goal', r)
ms = MobileClient(client, lm2, odom_topic='/odom', map_topic='/map')
ms.wait_for_ready()

Use dynamic FCFS scheduler. Set goal and make able to execute goals. You can set goal any time not only after call start().

Details:

  • start(), stop(): make scheduling queue executable/inexecutable
ms.start()

# set scheduler a goal that go ahead 0.5 from robot body
ms.set_goal_relative_xy(0.5, 0, is_dynamic=False)

# set relative pos(x:front:-0.5, y:left:1) based basis vector that decided dynamic after previous executed
ms.set_goal_relative_xy(-0.5, 1, is_dynamic=True)

# set goal directly with world frame's pose
ms.set_goal(ms.get_vec_q(-0.4,-0.6,0), ms.get_rot_q(0,0,math.pi/2))

time.sleep(60)

ms.stop()

There are other way to wait for time until reach goal. Exchange time.sleep(n) to ms.wait_for_execute_all().

...
ms.wait_for_execute_all()
...

Metadata

Release files for rosmobilelib 0.1.2.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rosmobilelib 0.1.2.9
File Size Uploaded
rosmobilelib-0.1.2.9.tar.gz 11.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rosmobilelib 0.1.2.9
File Interpreter ABI Platform
rosmobilelib-0.1.2.9-py3-none-any.whl Python 3 none any Details

Total release size: 22.7 kB

Release files / rosmobilelib-0.1.2.9.tar.gz

Download URL rosmobilelib-0.1.2.9.tar.gz
Size 11.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f7e2c52fcb7cfde8835148ee98ff2961eea09aef0dd45b89bea37cfaf2ee71d2
BLAKE2b-256 checksum
How to use checksums
eb779e928d65dd5d852cb18d175fe6a15eb6760fdfb427e45710dbeff8175735
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.10 CPython/3.8.3 Darwin/19.6.0

Release files / rosmobilelib-0.1.2.9-py3-none-any.whl

Download URL rosmobilelib-0.1.2.9-py3-none-any.whl
Size 11.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
434fea3ec26fa162f4aefd79c3307fe4d34c91bad5f434daa13fcb9079725183
BLAKE2b-256 checksum
How to use checksums
67f3619565b0fab6444412a4ba601901b4818b656ab6e4a9439628bb1a2b0609
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.10 CPython/3.8.3 Darwin/19.6.0

Release history Release notifications | RSS feed

This release

0.1.2.9 This release

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page