{"id":14003,"date":"2023-12-07T09:52:07","date_gmt":"2023-12-07T07:52:07","guid":{"rendered":"https:\/\/atostek.com\/?page_id=14003"},"modified":"2023-12-07T09:52:07","modified_gmt":"2023-12-07T07:52:07","slug":"read-onboard-whitepaper-flexbot","status":"publish","type":"page","link":"https:\/\/atostek.com\/en\/read-onboard-whitepaper-flexbot\/","title":{"rendered":"The next generation of your robot software – onboard whitepaper – free to read"},"content":{"rendered":"
[vc_row full_width=”stretch_row” wpex_bg_overlay=”color” min_height=”305px” css=”.vc_custom_1700042993585{padding-top: 70px !important;padding-bottom: 25px !important;background: #013453 url(https:\/\/atostek.com\/wp-content\/uploads\/2023\/08\/whitepaper-news_603047091-1.jpg?id=13746) !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}” wpex_bg_overlay_color=”#0f447f” wpex_bg_overlay_opacity=”0.6″][vc_column][vc_column_text]\n

ARTICLE<\/p>\n[\/vc_column_text][vc_column_text color=”#ffffff”]\n

Transition to the next generation of your robot software<\/strong><\/h1>\n

In the realm of robot software development, algorithms are the cornerstone of intelligent machines. Algorithms serve as the unique intelligence driving various devices \u2013 it is precisely within this layer that a company gains its competitive advantage.<\/strong><\/span><\/p>\n

Authors: Ida Pellinen, Tuomas Fj\u00e4llstr\u00f6m and Juhana Helovuo[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=”.vc_custom_1654028349035{margin-top: 40px !important;margin-bottom: 30px !important;}”][vc_column css=”.vc_custom_1479553360477{margin-bottom: 5px !important;}”][vc_column_text]Developing mobile robot software requires a substantial effort in building a robust platform that incorporates essential elements like messaging, memory management, and logging \u2013 such elements are not exactly robotics, but they are necessary for a functioning whole. A significant amount of time and resources are dedicated solely to constructing and maintaining the platform.<\/p>\n

In this article, we will tell you how Flexbot equips you with a ready-to-use robot software platform and speeds up your product development.[\/vc_column_text][vc_raw_html]JTVCYm9vbWRldnNfdG9jJTVE[\/vc_raw_html][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” css=”.vc_custom_1700042564849{margin-top: 40px !important;margin-bottom: 30px !important;}”][vc_column css=”.vc_custom_1479553360477{margin-bottom: 5px !important;}”][vc_column_text]\n

More development velocity for your robot software<\/h2>\n

When it comes to architecting software for your mobile robots, you often face these three options: building your own software from scratch, utilizing an open-source software like ROS 2 (Robot Operating System 2), or licensing a commercial solution.[\/vc_column_text]

<\/div>[vc_column_text]\n\n\n\n\n\n\n\n\n
Alternatives<\/th>\nYou control development \/ All sources available<\/th>\nManages memory and concurrency<\/th>\nIntegration to legacy code<\/th>\nComplexity management<\/th>\nTest framework & simulator compability<\/th>\n<\/tr>\n<\/thead>\n
Licence closed solution<\/td>\nNo<\/td>\nMaybe<\/td>\nVariable<\/td>\nVariable<\/td>\nMaybe<\/td>\n<\/tr>\n
Design your own from scratch<\/td>\nYes<\/td>\nExpensive<\/td>\nYes<\/td>\nExpensive<\/td>\nExpensive<\/td>\n<\/tr>\n
Use open source basis (ROS 2)<\/td>\nYes<\/td>\nPartially<\/td>\nExpensive<\/td>\nPartially<\/td>\nYes<\/td>\n<\/tr>\n
Use Flexbot to boost 2 or 3<\/td>\nYes<\/td>\nYes<\/td>\nYes<\/td>\nYes<\/td>\nYes \/ ROS 2, Carla, Gazebo, Unity, for example<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

Table 1: Alternative strategies for building robot software<\/em>[\/vc_column_text]

<\/div>[vc_column_text]Table 1<\/strong> offers a comparative overview of the distinct choices for your mobile robot\u2019s software. Flexbot stands out as the optimal solution when creating custom software or when building on open-source platforms like ROS 2.<\/p>\n

ROS 2 is a common and functional alternative for building robot software. In ROS 2, components are designed and implemented separately, and finally launched together, which causes the components to connect to each other and form a complete system (see Figure 1).[\/vc_column_text][vc_row_inner css=”.vc_custom_1701168142733{margin-top: 50px !important;margin-bottom: 20px !important;}”][vc_column_inner]

Curious about the benefits Flexbot offers? Book a meeting and let\u2019s explore the possibilities together!<\/strong>
\n\"\"Book a meeting<\/a><\/strong><\/p>\n<\/div><\/div>[\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]\n

ROS2 design flow<\/h3>\n

\"ROS2<\/p>\n

Figure 1: ROS 2 design flow<\/em>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner]

<\/div>[vc_column_text]The idea of Flexbot is that before designing the various components, a messaging network is described as accurately as possible. Once the description of the network structure exists, the code that implements the network can be generated from it. Only the algorithms within the components need to be manually implemented.<\/p>\n

Flexbot ensures that separately developed components fit together on the structural level (see Figure 2). The check is done in the design phase, and not left to the system startup phase, as in ROS 2. Flexbot complements ROS 2, offering versatility in deployment either independently or alongside other ROS 2 components.<\/p>\n

Flexbot helps you understand and validate the overall system before it is ready. Since the development task is large and complex, it is worth dividing it into parts \u2013 this can be done with Flexbot in a more controlled way, and the desired end result is achieved more easily.[\/vc_column_text]

<\/div>[vc_column_text]\n

Flexbot design flow<\/h3>\n

\"Flexbot<\/p>\n

Figure 2: Flexbot design flow<\/em>[\/vc_column_text][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” css=”.vc_custom_1701168301656{margin-top: 50px !important;margin-bottom: 50px !important;background-color: #f7f7f7 !important;}”][vc_column css=”.vc_custom_1479553360477{margin-bottom: 5px !important;}”][vc_row_inner equal_height=”yes” content_placement=”middle” css=”.vc_custom_1701168612069{padding-top: 20px !important;}”][vc_column_inner width=”1\/6″][vc_icon icon_fontawesome=”fas fa-arrows-alt-h” color=”custom” background_style=”rounded” background_color=”white” size=”xl” align=”center” custom_color=”#0f447f”][\/vc_column_inner][vc_column_inner width=”5\/6″][vc_column_text css=”.vc_custom_1701169041430{margin-right: 200px !important;margin-left: 20px !important;}”]\n

SCALABLE, REAL-TIME MESSAGING<\/h5>\n

Flexbots\u2019s messaging uses code generation to implement message passing between components. A thread-local communication channel is simply memory pointer passing in a FIFO queue with no serialization needed, which has a very low overhead. Passing data between threads adds synchronization. Communicating between separate processes uses ROS 2 messaging, which includes data serialization. The choice of implementation mechanism for each channel is done from the system specification, so the algorithms do not need to know about it.<\/span>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner equal_height=”yes” content_placement=”middle”][vc_column_inner width=”1\/6″][vc_icon icon_fontawesome=”fas fa-user-shield” color=”custom” background_style=”rounded” background_color=”white” size=”xl” align=”center” custom_color=”#0f447f”][\/vc_column_inner][vc_column_inner width=”5\/6″][vc_column_text css=”.vc_custom_1701168994671{margin-right: 200px !important;margin-left: 20px !important;}”]\n

SAFE CONCURRENCY<\/h5>\n

Flexbot supports multiple threads to execute the components in the system. The framework ensures that any component can be only executed by a single thread at a time. This virtually eliminates the need to manage concurrency at the algorithm implementation level, which greatly improves software robustness and safety.<\/span>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner equal_height=”yes” content_placement=”middle”][vc_column_inner width=”1\/6″][vc_icon icon_fontawesome=”fas fa-tasks” color=”custom” background_style=”rounded” background_color=”white” size=”xl” align=”center” custom_color=”#0f447f”][\/vc_column_inner][vc_column_inner width=”5\/6″][vc_column_text css=”.vc_custom_1701168999694{margin-right: 200px !important;margin-left: 20px !important;}”]\n

MEMORY MANAGEMENT<\/h5>\n

Flexbot\u2019s default implementation language is Rust, which is known for its high memory safety without compromising real-time capabilities. Components implemented in safe Rust virtually eliminate memory management errors, such as using deallocated memory (dangling pointers), reading uninitialized data, forgetting to deallocate memory (leaks), and even exposing unsynchronized data structures to several threads (race conditions).<\/span>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” css=”.vc_custom_1700042524001{margin-top: 40px !important;margin-bottom: 30px !important;}”][vc_column css=”.vc_custom_1479553360477{margin-bottom: 5px !important;}”][vc_column_text]\n

Unlock cost savings with Flexbot<\/h2>\n

In Table 2 and 3, we present a case study involving an industrial-grade onboard software. This software implements its own platform, i.e. follows alternative 2 from Table 1. The total amount of code and the proportion of algorithms are based on the actual project from which they are calculated. From the calculations, it is noticeable that only 5% of the total of 400,000 lines is algorithm code \u2013 a lion\u2019s share of the code is devoted to constructing and using the platform.<\/p>\n

With Flexbot, you get significant cost savings, speed up your development process and reduce the burden of repetitive tasks. How does Flexbot enable this?<\/p>\n

    \n
  1. Flexbot reduces the possibility of errors. With its message- based paradigm, Flexbot simplifies development by facilitating the division of tasks into manageable subtasks. Because the messaging network is generated from a specification, the specification is always up-to-date with the implementation, which helps to keep the architecture manageable.<\/li>\n
  2. With Flexbot, the software is mapped to single or multiple processors by the specification. There is no need to modify algorithms in order to scale the software up from a single processor to multiple computers.<\/li>\n
  3. Flexbot allows you to focus on algorithm development instead of platform building.<\/li>\n<\/ol>\n[\/vc_column_text]
    <\/div>[vc_column_text]\"\"[\/vc_column_text]
    <\/div>[vc_column_text]\"\"[\/vc_column_text]
    <\/div>[vc_column_text]How to speed up your autonomous machine software development process by 200%? \u00bb Watch the webinar about Flexbot!<\/a><\/strong>[\/vc_column_text][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” css=”.vc_custom_1701336168143{margin-top: 20px !important;padding-top: 40px !important;padding-bottom: 65px !important;background-color: #f7f7f7 !important;}”][vc_column css=”.vc_custom_1479553360477{margin-bottom: 5px !important;}”][vc_column_text]\n

    Evolutive software development<\/h2>\n

    Whether you have an existing product, or are embarking on a new development, Flexbot offers great adaptability. Even if you find yourself dissatisfied with your current onboard software, a safe, evolutionary development process with Flexbot is possible. It enables you to renew the software incrementally, providing greater control and reducing risk of failure.<\/p>\n

    Flexbot\u2019s evolutive development approach involves a step-by-step process where hardware and software are initially separated as illustrated in the Figure 3. Small steps ensure a fail-safe transition to the previous version at any point, while maintaining a functional, testable and deliverable software at all steps. This strategy allows software evolution with minimal disruption.<\/p>\n

    Existing software is divided into separate modules, and the modules communicate only via Flexbot. This division enables the developers to replace modules as needed, while keeping other parts as is.<\/p>\n

    Flexbot is licensed for an unlimited time, and with source code. Therefore, it does not lock you to a vendor. When you secure a permanent licence, you gain continuous access to the latest versions through the licence fee. If you decide to stop paying the annual fee, you still get to keep the latest version you paid for.<\/p>\n

    What are the real-world benefits then? Consider a scenario where a specific component requires upgrading or replacement. With Flexbot, you can make the changes swiftly and confidently, replacing the module with an improved version without disrupting the overall system. This level of agility empowers you to respond promptly to evolving requirements and technological advancements, thereby accelerating innovation cycles and maintaining competitive edge.[\/vc_column_text][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” parallax=”content-moving-fade” parallax_image=”13208″ wpex_bg_overlay=”custom” css=”.vc_custom_1701336147913{padding-top: 40px !important;padding-bottom: 20px !important;background-color: #eeeeee !important;}” min_height=”305px” wpex_bg_overlay_color=”#ededed” wpex_bg_overlay_opacity=”0.8″][vc_column width=”2\/3″][vc_column_text css=”.vc_custom_1701335491687{margin-top: 65px !important;}” color=”#606060″]\n

    How to make autonomous machines work in better cooperation with human workers?<\/b><\/span><\/p>\n[\/vc_column_text][vc_column_text css=”.vc_custom_1701335735373{margin-top: 20px !important;}”]\n

    Atostek\u2019s expert\u00a0Dr. Juhana Helovuo<\/strong> gives you concrete examples and illustrates the topic with detailed animations in the 30 minute free webinar.<\/p>\n[\/vc_column_text]

    <\/div>
    Watch the webinar<\/span><\/a><\/div> [\/vc_column][vc_column width=”1\/3″][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” css=”.vc_custom_1701167389126{background-color: #1a4580 !important;}” min_height=”305px” local_scroll_id=”contact” el_id=”contact”][vc_column el_class=”ctablock”][vc_column_text css=”.vc_custom_1701166892629{margin-top: 65px !important;}” color=”#ffffff”]\n

    Curious about the benefits Flexbot offers?
    \nBook a meeting and\u00a0let’s explore the possibilities together!<\/strong><\/span><\/p>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=”1\/2″][vc_column_text color=”#ffffff”]\n

    \"\"<\/strong><\/h4>\n[\/vc_column_text][\/vc_column_inner][vc_column_inner width=”1\/2″ css=”.vc_custom_1693375185154{padding-top: 60px !important;}”][vc_column_text color=”#ffffff”]\n

    Lauri-Tapio Korhonen<\/strong><\/span><\/p>\n

    Sales Manager
    \n
    lauri-tapio.korhonen@atostek.com<\/a>
    \n+358 44 792 4525<\/p>\n[\/vc_column_text][vc_raw_html]JTNDc3Ryb25nJTIwc3R5bGUlM0QlMjJ0ZXh0LXRyYW5zZm9ybSUzQSUyMHVwcGVyY2FzZSUzQiUyMiUzRSUzQ2ltZyUyMGNsYXNzJTNEJTIyYWxpZ25ub25lJTIwd3AtaW1hZ2UtMTA1MDUlMjIlMjBzcmMlM0QlMjJodHRwcyUzQSUyRiUyRmF0b3N0ZWsuY29tJTJGd3AtY29udGVudCUyRnVwbG9hZHMlMkYyMDIyJTJGMDIlMkZBcnRib2FyZC0xLnBuZyUyMiUyMGFsdCUzRCUyMiUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjI1NCUyMiUyMCUyRiUzRSUzQ2ElMjBjbGFzcyUzRCUyMm5hcHBpJTIyJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGbWVldGluZ3MtZXUxLmh1YnNwb3QuY29tJTJGbGF1cmktdGFwaW8lMjIlM0VCb29rJTIwYSUyMG1lZXRpbmclM0MlMkZhJTNFJTNDJTJGc3Ryb25nJTNF[\/vc_raw_html][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row full_width=”stretch_row” content_placement=”middle” parallax=”content-moving” parallax_image=”13509″ parallax_speed_bg=”1.2″ wpex_bg_overlay=”color” css=”.vc_custom_1701337125977{padding-top: 40px !important;padding-bottom: 40px !important;background-color: #f7f7f7 !important;}” min_height=”400px” el_class=”white” wpex_bg_overlay_color=”#3a3a3a” wpex_bg_overlay_opacity=”0.8″][vc_column css=”.vc_custom_1479553360477{margin-bottom: 5px !important;}”][vc_column_text color=”#ffffff”]\n

    See how we have helped Kalmar and Logisnext with our expertise!<\/h2>\n

    \"Kalmar<\/a> \"\"<\/a>[\/vc_column_text][\/vc_column][\/vc_row]\n<\/section>","protected":false},"excerpt":{"rendered":"

    [vc_row full_width=”stretch_row” wpex_bg_overlay=”color” min_height=”305px” css=”.vc_custom_1700042993585{padding-top: 70px !important;padding-bottom: 25px !important;background: #013453 url(https:\/\/atostek.com\/wp-content\/uploads\/2023\/08\/whitepaper-news_603047091-1.jpg?id=13746) !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}” wpex_bg_overlay_color=”#0f447f” wpex_bg_overlay_opacity=”0.6″][vc_column][vc_column_text] ARTICLE [\/vc_column_text][vc_column_text color=”#ffffff”] Transition to the next generation of your robot software In the realm of robot software development, algorithms are the cornerstone of intelligent machines. Algorithms serve as the unique intelligence driving various devices…<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rank_math_lock_modified_date":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-14003","page","type-page","status-publish","hentry","entry","no-media"],"_links":{"self":[{"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/pages\/14003"}],"collection":[{"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/comments?post=14003"}],"version-history":[{"count":30,"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/pages\/14003\/revisions"}],"predecessor-version":[{"id":14194,"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/pages\/14003\/revisions\/14194"}],"wp:attachment":[{"href":"https:\/\/atostek.com\/en\/wp-json\/wp\/v2\/media?parent=14003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}