Robotics
Good development practices and environment setup
We can help you with:
- The architecture of your packages for development, testing, deployment and maintenance.
- The configuring of quality assurance tooling such as linters, licenses, tests, CI, etc.
- Guiding your teams to build development and deployment environments.
- Guiding your teams to use and participate in open source software.
By implementing concrete technology, such as:
- Github, Gitlab, AWS and GCP infrastructure.
- CMake, catkin, colcon, virtual environments, etc.
- Linters, gtest, gmock, unittest, benchmarks, etc.
- Docker, NVidia GPU driver configuration.
- ARM and Intel based architectures.
Simulation and modelling
From the robot to entire scenarios, we can help to grow your simulation stack
from nothing to thousands of hours of robot simulation per month.
First, we assess which is the best simulation strategy for your use case
and available resources by helping your team to:
- Model your robot and its environment scenarios.
- Define integration tests and define testing strategies.
Then, we implement the simulation by:
- Building the robot model and its sensors.
- Building the scenarios.
- Customizing (multi-)robot and scenarios configurations.
We help you to build tests on top of the simulations:
- Your developers will be able to evaluate the code before launching it on the real robot.
- Gain the confidence on your robot stack, prepare it for scale and deployment.
- Catch regressions before they get down the production line.
We adjust to your needs by implementing the right software stack for your team which includes:
- Gazebo and Ignition technologies.
- ROS Tests.
- AWS RoboMaker.
- Webots.
- Unity.
- NVidia Omniverse.
- Github, Gitlab and Bitbucket CI pipelines.
Navigation and localization
We understand about robot dynamics and can help you to model the physics of your robot,
derive constraints based on real hardware and make your robot navigate under different
scenarios. We will engage with your simulation, perception, navigation and localization
teams to help them solve:
- The navigation stack from the ground up.
- The application and configuration of various SLAM solutions.
- Your testing scenarios.
- Hardware and sensor choice.
- Routing strategies.
- Performance improvements.
By using of the shelf ROS based solutions or custom implementations of:
- Nav and Nav2 stack.
- SLAM Toolbox, GMapping, Cartographer, Karto and others.
- Robot localization.
- ROS/ROS2 Control.
Planning and control
Not only movable bases are subject to specific kinematic and dynamic models, but also
robotic arms and generally speaking robotic systems. We can help your team to develop
planning and control obstacles to run concrete applications on top of the possible configurations
the system could have. By doing so, we would implement:
- Path planning and routing.
- Control the actuators of your robots.
- Control loops via your sensing mechanisms.
- Obstacle avoidance.
- Bahavior definitions and actions.
By using off-the-shelf ROS based solutions or custom implementations of:
- Nav and Nav2 stack.
- MoveIt, TrajOpt and other path planning and obstacle avoidance algorithms.
- Decision and behavior trees.
- ROS Control
- ML / AI based methods for teach and repeat processes, control and behavior modeling.
Perception
We have experience working with multiple types of sensors to achieve the desired results
in diverse SLAM stacks, including:
- Lidar
- Cameras (monoscopic, depth and stereo cameras)
- IMUs
- Wheel encoders
- Lasers
- GPS
- Magnetic and capacitive sensors.
And then fusing those data streams. We can also help with modelling those sensors in simulation
to enable hundreds and thousands of hours of testing.
Fleet management
Robotic systems require interaction, coordination and cooperation between multiple agents. Agents
require monitoring and task assignment to properly integrate in the system. We partnered with InOrbit
to enable Fleet Management Systems orchestrate your robot fleets and leverage the power of your
system. Also, we can assist you on the development of your already running FMS in areas like:
- Protocol bridges.
- System infrastructure.
- Orchestration and planning.
There are many areas that we can help your team with, such as:
- Improving robot control and operation with customized dashboards or teleoperation devices and software.
- Improving data introspection and regression testing analysis.
- Improving networking configuration and resilience.
- Bridging ROS message protocols with other protocols, e.g. MQTT, HTTP, etc.
- Integration with third party services.
- Bindings to multiple programming languages.
ROS to ROS 2 transition
ROS Noetic will reach its EOL in May 2025. After that, there
will be no active development nor maintenance for ROS Noetic and users will not receive further
software updates or bug fixes. The community is encouraged to transition to ROS 2. Ekumen has an
extensive track record helping companies doing so and also contributing to the core development of
ROS 2. We can help you to:
- Build a list of requirements based on your robotic system.
- Build a migration plan together that adjusts to your business needs.
- Implement the migration plan to the most convenient ROS 2 distribution.
- Find the right dependency alternatives when migrating.
- Make your system more robust by adding tests, improving infrastructure and introspection.
- Conduct feasibility studies to test how your system will perform in ROS 2.
- Follow the best software development practices to improve code quality.
- Update deployed units with the new software stack.
- Help your engineers to adopt the new technologies with documentation and training.
Gazebo classic EOL
Gazebo Classic will reach its EOL in January 2025.
After that, there will be no active development nor maintenance for Gazebo Classic and users will
not receive further software updates or bug fixes. The community has been encouraged to transition
to modern Gazebo. Ekumen has an extensive track record building simulation infrastructure and
can help you to:
- Build a list of requirements for your new simulation software suite.
- Help evaluate and choose the best simulation engine for your use cases.
- Build a migration plan together that adjusts to your business needs.
- Implement the migration plan to modern Gazebo or any other simulator.
- Conduct feasibility studies to test features in other simulation technologies.
- Follow the best software development practices to improve code quality.
- Integrate the new simulation software to your CI/CD infrastructure.
- Help your engineers to adopt the new technologies with documentation and training.
Mobile technologies
AR & VR
We are key contributors to the development of state of the art technologies that enable VR and AR
applications in mobile devices. We are focused on virtual reality and augmented reality applications
to enable new human - robot interactions. We can help you to deploy applications on Android devices
that use embedded devices such as wearables, sensors and actuators as well as integrate these technologies
in games or distributed applications that use mobiles as swarms.
Sensors
Mobile devices come with a lot of useful and high quality sensors. We can help you to:
- Calibrate sensors.
- Acquire data.
- Process data.
- Store it in an efficient way.
- Playback and storage.
- Define and implement testing strategies.
- Develop algorithms on top, build libraries and distribute them.
Feasibility studies and proof of concepts
Do you have a complex project that combines multiple technologies and disciplines?
Would you like to test your idea and evaluate hypothesis first?
We have experience implementing state of the art engineering and scientific development into production environments and understand what should be tested, evaluated and studied in favor of decreasing the risks of large projects.
We can help you to:
- Identify scalability problems.
- Benchmark technologies for your purposes.
- Design and plan the architecture of your ideas.
- Build proof of concept in short periods of time.
- Integrate off-the-shelf technologies with yours.
- Transition closed source code to use the open source tooling.