android app控制ros机器人三(android登录界面)

这篇具有很好参考价值的文章主要介绍了android app控制ros机器人三(android登录界面)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接下来是二次开发的具体环节了,由于存在用户需求,用到ros-mobile不多,更偏向于android开发。

用ppt画了简单的展示界面,与用后交流界面的功能布局。先开发一代简易版本的app,后续可以丰富完善。ctrlc+v上线。

登录界面--在ros-mobile基础上增加登录界面,初代版本只设置登录按钮,账号密码也是固定的,后续完善吧

步骤1:创建登录界面布局

首先,在res/layout文件夹下创建一个新的XML布局文件activity_login.xml,用于呈现登录界面的UI元素。xml文件选择了layout.xml,查询了解到"app actions"文件夹通常用于定义应用的操作和快捷方式,而"values"文件夹用于存放应用中使用的字符串、颜色和其他资源的值。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="16dp">

        <EditText
            android:id="@+id/editTextUsername"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:hint="请输入用户名"/>

        <EditText
            android:id="@+id/editTextPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/editTextUsername"
            android:layout_marginTop="16dp"
            android:inputType="textPassword"
            android:hint="请输入密码"/>

        <Button
            android:id="@+id/btnLogin"
            android:layout_width="395dp"
            android:layout_height="wrap_content"
            android:layout_below="@id/editTextPassword"
            android:layout_marginTop="16dp"
            android:text="登录" />


    </RelativeLayout>

</LinearLayout>

步骤2:创建登录Activity

java文件夹下创建一个新的LoginActivity类来管理登录界面的逻辑和交互。路径:ui/activities/LoginActivity.java

package com.schneewittchen.rosandroid.ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.schneewittchen.rosandroid.R;
import com.schneewittchen.rosandroid.ui.activity.MainActivity;

public class LoginActivity extends AppCompatActivity {

    private EditText usernameEditText;
    private EditText passwordEditText;
    private Button loginButton;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        usernameEditText = findViewById(R.id.editTextUsername);
        passwordEditText = findViewById(R.id.editTextPassword);
        loginButton = findViewById(R.id.btnLogin);

        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取输入的用户名和密码
                String username = usernameEditText.getText().toString();
                String password = passwordEditText.getText().toString();

                // 这里可以添加登录逻辑,例如与服务器进行验证等
                // 假设用户名和密码都是 "robot",登录成功后跳转到主界面
                if (username.equals("robot") && password.equals("robot")) {
                    Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();

                    // 登录成功后跳转到主界面
                    Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                    startActivity(intent);
                    finish(); // 登录成功后关闭登录界面,防止用户按返回键回到登录界面
                } else {
                    Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

步骤3:更新AndroidManifest.xml

AndroidManifest.xml文件中添加登录Activity的声明。将登录界面作为启动界面。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.schneewittchen.rosandroid">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:replace="android:icon">

        <activity
            android:name=".ui.activity.LoginActivity"
            android:label="@string/login_activity_title"
            android:theme="@style/AppTheme.NoActionBar"
            android:windowSoftInputMode="adjustResize">

            <!-- 设置为启动器 -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

        <activity
            android:name=".ui.activity.MainActivity"
            android:windowSoftInputMode="adjustResize"
            android:screenOrientation="unspecified">

        </activity>

        <service android:name=".model.repositories.rosRepo.node.NodeMainExecutorService">
            <intent-filter>
                <action android:name="org.ros.android.NodeMainExecutorService" />
            </intent-filter>
        </service>
    </application>

</manifest>

string.xml文件:

<string name="login_activity_title">robot</string>

styles.xml文件:后续美化在这块添加代码


    <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 样式的其他属性 -->
    </style>

效果展示:

android app控制ros机器人三(android登录界面),ROS,安卓,ros-mobile,安卓app,安卓登录界面 android app控制ros机器人三(android登录界面),ROS,安卓,ros-mobile,安卓app,安卓登录界面android app控制ros机器人三(android登录界面),ROS,安卓,ros-mobile,安卓app,安卓登录界面

 文章来源地址https://www.toymoban.com/news/detail-619554.html

到了这里,关于android app控制ros机器人三(android登录界面)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ROS高效进阶第五章 -- 机器人语音交互之ros集成科大讯飞中文语音库,实现语音控制机器人小车

    从本文开始,我们将用两篇文章学习机器人语音交互。本文作为第一篇,将在ros上集成科大讯飞的中文语音库,实现语音控制机器人小车运动。至于语音识别和语音合成的原理,本文并不深究,读者可以自行搜索相关的文章介绍。这里提醒,本文的测试环境是ubuntu20.04 + ros

    2024年02月04日
    浏览(79)
  • 【ROS】机器人使用Nomachine进行远程控制

    官网:NoMachine - Free Remote Desktop for Everybody 支持的系统: Windows Mac Linux 树莓派 其他ARM板 IOS Android 由于网速问题,可以使用我下载好的:(8.8.1_1) 链接:https://pan.baidu.com/s/16v6jn8a-dcVbIxGI3bI2QA   提取码:r8pi    Windows安装:(直接一路next即可,顺便改下安装位置) 这样就安装

    2024年03月22日
    浏览(67)
  • 利用qt实现机器人可视化界面,并在界面上控制机器人各个关节运动

     本工程借助于clion配置的qt环境,同时依赖eigen tinyxml2等开源库,也借鉴了博客上一些文章,具体哪些忘记了,十分抱歉。本工程仅供参考。机械臂模型为史陶比尔官网的TX2-60L-HB。可以去那下载对应的stp文件。 最终图:  通过鼠标中键控制旋转 缩放,配合ctrl进行平移。加载

    2024年02月11日
    浏览(54)
  • 基于ROS实现的机器人运动PID控制器

    下面是一个基于ROS实现的机器人运动PID控制器的例子: 首先,需要定义机器人的运动控制器节点,例如: 其中, cmd_vel_pub 是一个发布器,用于发布机器人的运动控制指令; odom_sub 是一个订阅器,用于接收机器人的里程计信息。 然后,需要实现一个PID控制器的类,例如: 其

    2024年02月13日
    浏览(49)
  • 使用ros_arduino_bridge控制机器人底盘

      搭建了ROS分布式环境后,将ros_arduino_bridge功能包上传至Jetson nano,就可以在PC端通过键盘控制小车的运动了。实现流程如下: 系统准备; 下载程序; 程序修改; 分别启动PC与Jetson nano端相关节点,并实现运动控制。   ros_arduino_bridge是依赖于python-serial功能包的,需要在

    2024年01月17日
    浏览(38)
  • 如何将电机控制器添加到您的 ROS 机器人

            如果您正在构建与 ROS/ROS2 一起使用的移动机器人,您需要做的第一件事就是集成电机控制器。电机控制器的目的是接受来自更高级别的软件(如导航堆栈)的消息,并将其转换为驱动电机的信号。它还将从电机的编码器接收信息,以计算机器人的速度和位置。 您

    2024年02月15日
    浏览(50)
  • kuka示教器嵌套UR界面操作ros中rviz的UR机器人

    本例展示了用QT增加一个网页视图,背景是kuka示教器界面,中间增加UR的VNC网页界面显示。本人博客中一起有写过ros2运行UR的操作。         ros2 UR10仿真包运行_基于ros的ur仿真-CSDN博客       效果如下:     背景的增加,参考这篇文件。  qt for python创建UI界面-CSDN博客   主要

    2024年02月21日
    浏览(50)
  • ROS学习第三十七节——机器人运动控制以及里程计信息显示

    https://download.csdn.net/download/qq_45685327/87719766 https://download.csdn.net/download/qq_45685327/87719873 gazebo 中已经可以正常显示机器人模型了,那么如何像在 rviz 中一样控制机器人运动呢?在此,需要涉及到ros中的组件: ros_control。 场景: 同一套 ROS 程序,如何部署在不同的机器人系统上,比

    2024年02月13日
    浏览(43)
  • ubuntu20.04_ROS中运行gazebo控制机器人模型报错

    1.无法启动类型为[controller_ manager/spawner]的节点:controller_ manager ERROR: cannot launch node of type [controller_manager/spawner]: controller_manager ROS path [0]=/opt/ros/noetic/share/ros ROS path [1]=/home/lym/catkin_ws/src ROS path [2]=/opt/ros/noetic/share 解决办法:安装controller_manager 2.控制器生成程序找不到预期的控

    2024年02月16日
    浏览(46)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真

    一、创建工作空间          二、下载wpr_simulation源码 git clone https://github.com/6-robot/wpr_simulation.git 三、编译 ~/catkin_make  目录下catkin_make source devel/setup.bash 四、运行 roslaunch wpr_simulation wpb_simple.launch 启动另一个终端,执行: rosrun rqt_robot_steering rqt_robot_steering 鼠标改变速度和角

    2024年01月20日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包